云服务中不同数据库的便捷速查表
为您的项目选择合适的数据库是一项复杂的任务。许多数据库选项,每个都适合不同的用例,可能会迅速导致决策疲劳。
我们希望这个速查表能为您提供高层次的指导,以确定符合您项目需求的正确服务,并避免潜在的陷阱。
注意:谷歌对其数据库用例的文档有限。尽管我们尽力查看了可用内容并得出了最佳选项,但某些条目可能需要更准确。
数据库索引格式的选择取决于您的具体使用场景。数据可以在内存中或在磁盘上进行索引。同样,数据格式也各不相同,例如数字、字符串、地理坐标等。系统可能是写操作密集型或读操作密集型。所有这些因素都会影响您对数据库索引格式的选择。
以下是一些用于索引数据的最流行的数据结构:
下面这张图展示了这个过程。请注意,不同数据库的架构是不同的,这张图展示了一些常见的设计。
第一步 - 通过传输层协议(例如TCP)将SQL语句发送到数据库。
第二步 - SQL语句被发送到命令解析器,在那里它经过语法和语义分析,然后生成查询树。
第三步 - 查询树被发送到优化器。优化器创建执行计划。
第四步 - 执行计划被发送到执行器。执行器从执行中检索数据。
第五步 - 访问方法提供执行所需的数据获取逻辑,从存储引擎检索数据。
第六步 - 访问方法决定SQL语句是否是只读的。如果查询是只读的(SELECT语句),它将被传递给缓冲区管理器进行进一步处理。缓冲区管理器在缓存或数据文件中查找数据。
第七步 - 如果语句是UPDATE或INSERT,它将被传递给事务管理器进行进一步处理。
第八步 - 在事务期间,数据处于锁定模式。这是由锁管理器保证的。它还确保事务的ACID属性。
CAP定理是计算机科学中最著名的术语之一,但我敢打赌不同的开发者有不同的理解。让我们来探讨一下它是什么以及为什么它可能会令人困惑。
CAP定理指出,一个分布式系统不能同时提供以下三个保证中的两个以上。
“三选二”的表述可能是有用的,但这种简化可能会产生误导。
选择一个数据库并不容易。仅仅基于CAP定理来证明我们的选择是不够的。例如,公司不会仅仅因为Cassandra是一个AP系统就选择它用于聊天应用。有一系列良好的特性使得Cassandra成为存储聊天消息的理想选择。我们需要更深入地挖掘。
“CAP只禁止了设计空间的一小部分:在存在分区的情况下实现完美的可用性和一致性,这种情况很少见。”引自论文:CAP十二年后:规则如何改变。
该定理关注的是100%的可用性和一致性。一个更现实的讨论应该是在没有网络分区的情况下,延迟和一致性之间的权衡。更多细节请参见PACELC定理。
CAP定理真的有用吗?
我认为它仍然有用,因为它为我们打开了一系列权衡讨论的思路,但它只是故事的一部分。在选择正确的数据库时,我们需要更深入地挖掘。
SQL语句的执行涉及多个步骤,包括:
SQL的执行非常复杂,涉及许多考虑因素,例如:
在1986年,SQL(结构化查询语言)成为了一个标准。在接下来的40年里,它成为了关系数据库管理系统的主导语言。阅读最新的标准(ANSI SQL 2016)可能会很耗时。我该如何学习它?
SQL语言有5个组成部分:
作为一个后端工程师,你可能需要了解其中的大部分。作为一个数据分析师,你可能需要对DQL有很好的理解。选择与你最相关的主题进行学习。
本文作者:Eric
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!