索引——GIN/GIST
GIN
-
全称倒排索引(Generalized Inverted Index)
-
存储结构: 键值对
- 键: key
- 搜索的关键词
- 值: posting list
- 一个链表,存储了所有出现过的物理位置
- 键: key
-
优点
- 用于
全文搜索,特别快 - 一般用于
jsonb格式的数据列
- 用于
-
缺点
- 基表增加一行,索引可能要增加多个索引项,插入低效
- 为了解决这个问题,pg提供了两种插入模式:
- 正常模式:
- 立刻插入
- fastupdate模式:
- 等待一定量后批量插入
- 默认开启,可以在创建索引时,通过
WITH FASTUPDATE = OFF来关闭
- 正常模式:
- 为了解决这个问题,pg提供了两种插入模式:
- 基表增加一行,索引可能要增加多个索引项,插入低效
-
构建方式
- 参考2.5节json与jsonb的区别+索引
GiST索引
类似于GIN,但插入更高效,适用于频繁更新的场景(代价是查询比GIN更慢)