官术网_书友最值得收藏!

  • Mastering PostgreSQL 10
  • Hans Jürgen Sch?nig
  • 256字
  • 2021-06-30 19:03:56

Understanding PostgreSQL index types

So far, only binary trees have been discussed. However, in many cases, b-trees are just not enough. Why is that the case? As discussed in this chapter, b-trees are basically based on sorting. Operators <, <=, =, >=, and > can be handled using b-trees. The trouble is, not all.

Data types can be sorted in a useful way. Just imagine a polygon. How would you sort these objects in a useful way? Sure, you can sort by the area covered, its length or so, but doing this won't allow you to actually find them using a geometric search.

The solution to the problem is to provide more than just one index type. Each index will serve a special purpose and do exactly what is needed. The following index types are available (as of PostgreSQL 10.0):

test=# SELECT * FROM pg_am;
amname | amhandler | amtype
---------+-------------+--------
btree | bthandler | i
hash | hashhandler | i
GiST | GiSThandler | i
gin | ginhandler | i
spGiST | spghandler | i
brin | brinhandler | i
(6 rows)

There are six types of indexes. B-trees have already been discussed in great detail, but what are those other index types good for? The following sections will outline the purpose of each index type available in PostgreSQL.

Note that there are some extensions out there that can be used on top of what you can see here. Additional index types available on the web are rum, vodka, and in the future, cognac.

主站蜘蛛池模板: 凤翔县| 阜南县| 昌江| 西平县| 台南市| 海林市| 民权县| 若尔盖县| 北川| 万荣县| 土默特左旗| 北碚区| 新源县| 无极县| 杭锦后旗| 汤阴县| 宁阳县| 江阴市| 上虞市| 大丰市| 武胜县| 涡阳县| 门头沟区| 张掖市| 化州市| 南郑县| 泸水县| 太康县| 富锦市| 惠来县| 遵化市| 嘉鱼县| 天祝| 灌阳县| 裕民县| 浑源县| 峡江县| 万盛区| 丰镇市| 惠安县| 呼图壁县|