如何选择数据库?许多人对如何选择数据库的问题没有了解,本站就来讲讲如何选择数据库的问题,希望我的解答对你有所帮助。
对于每个节点都有整个数据库副本的集群而言,你可以获得更高的冗余性和更高的可用性。视策略而定,读取操作可能只需要一个节点,否则集群中的一组节点可能需要就返回值达成一致。
使用有多个节点的集群可以让数据库使用更多的CPU,从而增加吞吐量,并提高事务率。使用允许最近节点返回值的读取策略,读取延迟通常会降低。另一方面,必须等待所有节点提交的写入或事务策略,有时会增加写入延迟。
使用共识组有助于缩短延迟。如果你有一个三节点集群,一个节点负载过大,另两个节点就可以批准共识事务,并在第三个节点可用时更新该节点。
分片是一种通过划分数据库来处理更多数据的方法。手动分片可能费时又麻烦,许多数据库都有自动分片功能。
集群不是扩展数据库的终极方法,不过是第一步。下一步是分布式数据库,这通常意味着在多个区域有集群。一些数据库允许分布式只读副本和主读写实例或集群。其他数据库允许分布式读写实例或集群,并具有同步机制。
分布式数据库常常可以为远程用户提供更低的延迟和更高的吞吐量。东京的用户访问巴塞罗那的服务器可能会有260 毫秒的延迟,但如果日本有数据库副本,他们的平均读取延迟可能只有10毫秒。这对写入和事务的影响取决于数据库的一致性要求以及远程集群是如何配置的。
早期的分布式数据库是具有最终一致性的NoSQL数据库。最终一致性意味着不能保证在远程位置写入后读取返回最新信息,但会随着时间而更新。最终一致性放宽了写入和事务完成的要求,因而降低了延迟。
最近几种分布式数据库在数据结构、共识组和时间同步的帮助下实现了强一致性。这方面的例子包括Google Cloud Spanner和CockroachDB。
虽然大多数数据库都有免费的"社区"或"开发/测试"版本,但除了在线社区论坛外,它们可能缺乏支持。社区版和开源版也可能缺乏商业版本提供的一些性能优化。如果贵公司依赖数据库,应在许可证和支持上投入成本。
附:CAP 定理

CAP定理(Brewer 等人于1998 年提出)声称,任何网络共享数据系统最多具有以下三个理想属性中的两个:
C:一致性,相当于拥有一个最新的数据副本;
A:该数据的可用性,用于更新;
P:对网络分区的容忍度。
这则三分之二的公式被证明过于简单化。在现代分布式数据库架构中,节点故障和网络分区由共享组使用Paxos或Raft算法来缓解。实际上,当一个节点退出集群后,只要它有仲裁机制,集群就会继续工作。此外,分区在私有网络内部很少见,比如在主要云提供商处的私有网络:它们在数据中心之间使用冗余光纤,并不通过公共互联网传输内部流量。
这意味着,虽然从严格上来说没有数据库可以绕过CAP定理,但实际上好的云数据库拥有超过五个九(99.999%)的可用性,这些数据库可以绕过CAP定理,同时拥有一致性和可用性。
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!