加入收藏 | 设为首页 | 会员中心 | 我要投稿 焦作站长网 (https://www.0391zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

PostgreSQL的B-tree索引的使用细说

发布时间:2021-10-09 12:33:36 所属栏目:动态 来源:互联网
导读:B-tree索引适合用于存储排序的数据。对于这种数据类型需要定义大于、大于等于、小于、小于等于操作符。 通常情况下,B-tree的索引记录存储在数据页中。叶子页中

默认情况下,对于组合类型排序是分开的:首先比较第一个字段然后第二个字段,与文本字符串比较方法大致相同。但是我们也可以定义其他的排序方式,例如组合数字可以当做一个向量,通过模值进行排序。为了定义这样的顺序,我们需要创建一个函数:

 

postgres=# create operator class complex_ops

default for type complex

using btree as

 operator 1 #<#,

 operator 2 #<=#,

 operator 3 #=#,

 operator 4 #>=#,

 operator 5 #>#,

function 1 complex_cmp(complex,complex);

 

//排序结果:

postgres=# select * from numbers order by x;

 x

--------

 (1,1)

 (1,3)

 (0,10)

(3 rows)

 

//可以使用此查询获取支持的函数:

 

postgres=# select amp.amprocnum,

  amp.amproc,

  amp.amproclefttype::regtype,

  amp.amprocrighttype::regtype

from pg_opfamily opf,

  pg_am am,

  pg_amproc amp

where opf.opfname = 'complex_ops'

and opf.opfmethod = am.oid

and am.amname = 'btree'

and amp.amprocfamily = opf.oid;

 amprocnum | amproc | amproclefttype | amprocrighttype

-----------+-------------+----------------+-----------------

   1 | complex_cmp | complex  | complex

(1 row)

 

 

 

//排序结果:postgres=# select * from numbers order by x; x -------- (1,1) (1,3) (0,10)(3 rows)

 

//可以使用此查询获取支持的函数:

 

(编辑:焦作站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读