摘要:什么是隔离以及隔离为何重要 可能每个人至少都知道事务的存在,遇到过ACID,并且听说过隔离级别。但是我们仍可能认为这与理论有关,这在实践中是不必要的。因此,我将花一些时间来解释为什么这确实很重要。 如果应用程序从数据库中获取了不正确的数据,或者应用程序将错误的数据写入了数据库,你肯定会不高兴。 但是 阅读全文
PostgreSQL中的索引(四) --Btree
2020-08-15 12:36 by abce, 1168 阅读, 0 推荐, 收藏, 编辑
摘要:我们已经讨论了PostgreSQL的索引引擎和访问方法的接口,以及哈希索引。现在我们将考虑b树,最传统和最广泛使用的索引。本文篇幅很大,请耐心等待。 Btree的结构 B-tree索引类型,以«btree»访问方法实现的,适合于可排序的数据。换句话说,必须为数据类型定义«greater»、«grea 阅读全文
PostgreSQL中的索引(九)--BRIN
2020-08-14 16:42 by abce, 1256 阅读, 0 推荐, 收藏, 编辑
摘要:在之前的文章中,我们讨论了PostgreSQL索引引擎、访问方法的接口以及以下方法:hash索引、b-tree、GiST、SP-GiST、GIN和RUM。本文的主题是BRIN(Block Range Index)。 与我们已经熟悉的索引不同,BRIN的想法是避免查找绝对不合适的行,而不是快速找到匹配 阅读全文
PostgreSQL中的索引(十)--Bloom
2020-08-13 16:23 by abce, 1300 阅读, 0 推荐, 收藏, 编辑
摘要:在之前的文章中,我们讨论了PostgreSQL索引引擎和访问方法的接口,以及哈希索引、b-tree、GiST、SP-GiST、GIN、RUM和BRIN。现在我们来看看Bloom索引。 典型的布隆过滤器是一种数据结构,使我们能够快速检查集合中元素的成员关系。过滤器是非常紧凑,但允许存在错误:it ca 阅读全文
PostgreSQL中的索引(八)--RUM
2020-08-12 21:45 by abce, 1394 阅读, 0 推荐, 收藏, 编辑
摘要:我们已经讨论了PostgreSQL索引引擎,访问方法的接口,以及主要的访问方法,如:hash indexes、B-trees、GiST、SP-GiST和GIN。在这篇文章中,我们将观察gin是如何变成rum的。 RUM 尽管作者声称GIN是一个强大的精灵,但比较的最终结果证明:GIN的下一代被称作R 阅读全文
PostgreSQL中的索引(七)--GIN
2020-08-11 21:56 by abce, 2607 阅读, 0 推荐, 收藏, 编辑
摘要:我们已经熟悉了PostgreSQL索引引擎和访问方法的接口,并讨论了hash索引、b-trees以及GiST和SP-GiST索引。这篇文章将介绍GIN索引。 GIN GIN是广义倒排索引(Generalized Inverted Index)的缩写。这就是所谓的倒排索引。它操作的数据类型的值不是原子 阅读全文
PostgreSQL中的索引(六) --(SP-GiST)
2020-08-11 21:23 by abce, 1846 阅读, 0 推荐, 收藏, 编辑
摘要:我们已经讨论过PostgreSQL索引引擎,访问方法的接口,以及三种方法:hash index, B-tree和GiST。在本文中,我们将描述SP-GiST。 SP-GiST 首先,简单介绍一下这个名字。«GiST»部分暗示了同GiST访问方法的一些相似性。相似性确实存在:两者都是广义搜索树,为构建 阅读全文
PostgreSQL中的索引(五) --GiST
2020-08-06 16:36 by abce, 2538 阅读, 1 推荐, 收藏, 编辑
摘要:在前几篇文章中,我们讨论了PostgreSQL索引引擎、访问方法的接口以及两种访问方法:hash索引和B-tree。在本文中,我们将描述GiST索引。 GiST GiST是广义搜索树«generalized search tree»的缩写。这是一个平衡搜索树,就像前面讨论的«b-tree»。 有什么 阅读全文
PostgreSQL中的索引(三) --Hash
2020-08-04 17:59 by abce, 1860 阅读, 0 推荐, 收藏, 编辑
摘要:许多现代编程语言都将哈希表作为基本数据类型。从表面上看,哈希表看起来像一个常规数组,使用任何数据类型(例如字符串)建立索引,而不仅是使用整数。PostgreSQL中的哈希索引也是以类似的方式构造的。这是如何运作的呢? 作为一个规则,数据类型允许的值范围非常大:在一个类型为«text»的列中,我们可以 阅读全文
PostgreSQL中的索引(二)
2020-08-04 17:37 by abce, 780 阅读, 0 推荐, 收藏, 编辑
摘要:在第一篇文章中,我们已经提到访问方法必须提供有关自身的信息。让我们看一下访问方法接口的结构。 属性 访问方法的所有属性都存储在«pg_am»表中(“am”代表访问方法)。我们还可以从同一个表中获取可用方法的列表: postgres=# select * from pg_am; amname | am 阅读全文