数据库一致性模型和隔离级别
- 原创经验
- |
- 更新:
- |
数据库下一步发展的基础:分布式SQL,分布式SQL是部署在单个数据中心中的多个物理节点或多个数据中心(如果需要)中的单个逻辑数据库。所有这些都使其能够提供弹性的氧化皮和防弹的弹性。今天我们就来聊聊数据库一致性模型和隔离级别。
具体如下
-
什么是数据库隔离级别?
数据库隔离级别是数据库的一项合同,规定您从任何给定事务中可能会看到哪些副作用和异常。一些常见的(从最严格的级别开始)包括可序列化,已提交读,未提交读和可重复读,这些对您的数据有不同的含义,例如可重复读取隔离级别指出,一旦事务读取了某些数据,则在同一事务中再次读取它会产生相同的结果。修改该数据的并发事务必须以某种方式不影响我们的读取事务的执行。
cpda数据分析师
分布式跟踪和性能监视
当您使用分布式系统时,数据存储和检索并不像传统的单片数据库中那样简单,这具有诸如弹性和高可用性之类的优势,但这意味着对给定交易的性能监控可能具有挑战性,查询执行通常是一个极其复杂的交互网络。在这种环境下,跟踪和分析性能瓶颈可能很困难,有时甚至很难找到根本原因。
全文索引和搜索
我将略述应用程序开发中一个非常常见的模式:全文索引和搜索。我将从一些动机开始,我将在解决方案中介绍初始阶段,然后对其进行更深入的说明,然后通过添加“得分”来改善结果。最后,我将在信息检索的背景下讨论这种简单化方法的局限性,最后回答“我为什么要这么做?
就像我对这些最初的结果感到兴奋时一样
仅基于“ d”查询,新颖性很快就消失了。缺少这种排序机制,无法按照相关性从高到低的顺序对结果进行排序。这就是标记为“ w”的查询的出现位置。此查询与“单词”表相对应,该表跟踪每个文档(以及每个“索引”中每个单词的出现总数),因为我预计会有一个以上的索引),将两个查询的元素组合起来以为每个搜索结果生成一个标准化分数。这是CTE派上用场的地方,因为它使我能够计算查询“ w”中的聚合,然后在分数计算中引用它。搜索结果按得分降序排列。这是具有CTE的最终查询:
-
什么是分布式SQL?数据库的演变
随着组织过渡到云,他们最终发现,在一些最关键的应用程序后面的旧式关系数据库根本无法利用云的前景,并且难以扩展。是数据库限制了这种转换的速度和有效性,为了解决此问题,组织希望获得经过测试的关系数据存储(例如Oracle,SQL Server,Postgres和MySQL)的可靠性,但要具有云附带的规模和全局覆盖范围的好处。
有些人转向NoSQL存储库来尝试满足这些要求
这些替代方案通常可以满足规模要求,但由于不是完全为提供真正的一致性而设计的,因此不能作为事务数据库使用,但它们充满了警告,并且无法为财务分类帐,库存控制和身份管理等任务关键型工作负载提供必要的隔离级别,分布式SQL是一种新型的数据库,在全球范围内运作的一些最成功的公司实际上已经解决了这个问题,并建立了专门的数据库来解决这个问题。