Featured
数据库一致性的实现

数据库一致性的实现

相信这是全网截至目前介绍隔离级别最详细的一份材料,欢迎批评指正。本文主要介绍了事务ACID的概念、对一致性和隔离性的理解。重点介绍了数据库隔离级别的基本原理,并介绍了MySQL和PostgreSQL隔离级别的实现。最后对TDSQL的数据库一致性实现方案做了介绍。

PostgreSQL源代码分析:indxpath.c

PostgreSQL源代码分析:indxpath.c

作者最初阅读indxpath.c的原因是想找到下面这个问题的答案:索引到底在什么场景下可以被使用?src/backend/optimizer/path/indxpath.c可以回答这个问题。本文对它进行了注释,介绍索引扫描路径生成的全过程。主要包括索引扫描路径生成的前提、生成过程中所用的算法、最终路径的种类等。整个过程,有大量的代码与处理条件(过滤条件和连接条件)相关。

PostgreSQL索引(10) – Bloom

PostgreSQL索引(10) – Bloom

本文介绍Bloom filter,它可以用来检查一个元素在集合中是否存在。如果它判断元素在集合中不存在,则这个元素在集合中一定不存在。如果它判断元素在集合中存在,则可能存在,也可能不存在。即它可能返回假阳性的结果,但不会返回假阴性的结果。

PostgreSQL索引(9) – BRIN

PostgreSQL索引(9) – BRIN

本文介绍BRIN索引,它的思想是为一段连续的页面生成一个摘要信息,根据摘要信息判断这些页面是否都不满足查询条件,如果都不满足,则不再扫描这些页面,从而加速查询。它用来快速排除不符合查询条件的页面,而不是快速找到符合条件的页面或元组。

PostgreSQL索引(8) – RUM

PostgreSQL索引(8) – RUM

本文介绍RUM索引,它没有被包含在PG的标准发行版中。它是GIN索引的升级版,与GIN最大的区别是,它不但索引词素,把把词素在文档中出现的位置记录在索引中。在需要这些位置信息时,它的性能比GIN高很多。