索引
文章平均质量分 95
翻译自Egor Rogov的外文博客,关于pg数据库的各类索引详解。
参宿_七
格物致知
展开
-
PostgreSQL中的索引——1
本文翻译自:Indexes in PostgreSQL — 1 : Postgres Professional目录介绍索引索引引擎主要扫描技术索引扫描位图扫描顺序扫描NULL多字段索引表达式上的索引(函数索引)部分索引排序并行构建介绍这一系列的文章与PostgreSQL中的索引非常相关。任何的学科都可以从不同的角度考虑,我们将讨论一些让使用DBMS的应用开发人员感兴趣的事:哪些索引是可用的,为什么有这么多种,以及如何使用它们来提升查询速度。翻译 2022-01-13 16:13:29 · 1621 阅读 · 0 评论 -
PostgreSQL中的索引——2(访问方法的接口)
目录接口操作符类与族系统目录接口在第一篇文章中,我们提到,访问方法必须提供自我的信息。让我们看看访问方法接口的结构。属性所有访问方法的属性都被存储在"pg_am"表中(“am”表示access method,访问方法)。我们同样可以从这张表中获取可用方法的列表:postgres=# select amname from pg_am; amname-------- btree hash gist gin spgist brin(6 rows)尽管顺序扫翻译 2022-02-11 15:44:09 · 473 阅读 · 0 评论 -
PostgreSQL中的索引——3(Hash)
第一篇文章描述了PostgreSQL索引引擎,第二篇处理访问方法的接口,现在我们准备讨论具体类型的索引。让我们从Hash索引开始。Hash架构一般理论很多现代编程语言将哈希表作为基本数据类型。从外观上看,哈希表看着像一个常规数组,它使用任何数据类型(例如字符串)而不是整数进行索引。在PostgreSQL中,哈希索引的结构与此类似。它是怎么工作的呢?通常情况下,数据类型的允许值范围非常大:在“text”类型的列中,我们可能会看到多少不同的字符串?同时,在某个表的文本列中实际存储了多少不同.翻译 2022-02-22 17:09:50 · 2463 阅读 · 0 评论 -
PostgreSQL中的索引——4(B树)
我们已经讨论了PostgreSQL的索引引擎和访问方法的接口,以及哈希索引(一种访问方法)。现在我们将考虑最传统以及使用最广泛的索引——B树。文章很长,所以有点耐心。B树架构B树索引类型,实现为“btree”访问方法,适用于可以排序的数据。换句话说,数据类型必须定义的大于、大于等于、小于、小于等于和等于操作。注意,相同的数据有时可以有不同的排序方法,操作符族中提到过这一点。通常,B树索引行被打包到页面中。在叶页面中,这些行包含要索引的数据(键)和对表行的引用(TID)。在内部页面中,每一..翻译 2022-02-28 10:19:45 · 1591 阅读 · 0 评论 -
PostgreSQL中的索引—5(GiST)上
在之前的文章中,我们讨论了PostgreSQL索引引擎、访问方法的接口,以及两种访问方法:哈希索引和B树。在本文中,我们将描述GiST索引。GiSTGiST是“广义搜索树”的缩写,这是一个平衡搜索树,就像之前讨论的B树一样。有什么区别?“btree”索引与比较语义严格相关:它只支持“大于”、“小于”和“相等”运算符(但功能非常强大!)然而,现代数据库存储的数据类型,如地理数据、文本文档、图像等等,对于这些操作符来说毫无意义。但GiST索引方法对这些数据类型有帮助,它允许定义一条规则,将任意类翻译 2022-03-02 16:04:19 · 1105 阅读 · 0 评论 -
PostgreSQL中的索引—5(GiST)下
"btree_gist"扩展让我们把问题复杂化。我们扩大了我们卑微的生意,我们打算出租多间小屋:postgres=# alter table reservations add house_no integer default 1;我们需要改变排他约束,以便将门牌号考虑在内。但是,GiST不支持整数的相等运算:postgres=# alter table reservations drop constraint reservations_during_excl;postgres=# a翻译 2022-03-02 18:28:19 · 546 阅读 · 0 评论 -
PostgreSQL中的索引—6(SP-GiST)
目录SP-GiST架构示例:四叉树内部构件示例:k维树内部构件示例:基数树内部构件属性NULL其他数据类型我们已经介绍了Postgresql索引引擎、访问方法接口和三种方法:哈希索引、B树索引和GiST。在这边文章中,我们将描述SP-GiST。SP-GiST(通常用于多维空间)首先,对这个名字说几句话。“GiST”部分暗示了与同名访问方法的一些相似之处。这种相似性确实存在:两者都是通用的搜索树,为构建各种访问方法提供了框架。“SP”代表空间分区。这翻译 2022-03-03 15:40:22 · 778 阅读 · 0 评论 -
PostgreSQL中的索引—7(GIN)
目录GIN一般概念全文检索查询示例更新缓慢的问题部分匹配的搜索频繁词和不频繁词限制查询结果紧凑表示GiST还是GIN?数组JSONB内部构件属性其他数据类型我们已经熟悉了PostgreSQL索引引擎和访问方法的接口,并讨论了哈希索引、B树以及GiST和SP GiST索引。本文将以GIN索引为特色。GIN“Gin?..Gin似乎是一种美国酒..”“我不是酒鬼,哦,好奇的孩子!”老人又一次勃然大怒,他又一次意识到自己,又一次控制住自己。翻译 2022-03-04 12:10:27 · 3621 阅读 · 0 评论 -
PostgreSQL中的索引—8(RUM)
目录RUMGIN的局限性短语搜索按相关性排序附加信息其他操作符类索引和预写日志(WAL)的大小属性我们已经讨论了PostgreSQL索引引擎、访问方法的接口,以及主要的访问方法,例如:哈希索引、B树、GiST、SP GiST和GIN。在本文中,我们将观察杜松子酒如何变成朗姆酒(GIN如何变成RUM的)。RUM尽管作者声称GIN是一种强大的精灵,但酒类的主题最终赢得了胜利:下一代GIN被称为RUM(朗姆酒)。这种访问方法扩展了GIN的基本概念,使我们能够更翻译 2022-03-04 17:58:13 · 854 阅读 · 0 评论 -
PostgreSQL中的索引—9(BRIN)
本文的主题是PG数据库中的BRIN索引。翻译 2022-11-11 12:17:14 · 1265 阅读 · 0 评论