【蓝因子教育】PgSQL的操作符、操作符类及操作符族(蓝因子护肤品官方店)

操作符、操作符类和操作符族是索引功能的重要组成部分。定义一个索引的时候,可以为索引中的每一列指定一个操作符类:

CREATE INDEX idxname ON table (id1 opclass [sort options][,...]);

如果不指定则使用默认的操作符类。如果使用自定义类型创建索引,并且针对该数据类型不创建操作符类的话,该索引就无法使用。

操作符类如何让一个索引生效呢?

1、操作符

针对每种数据类型,有比较操作符>、>=、<、<=、=等;算数操作符:加减乘除等;逻辑操作符:AND、OR、NOT等。可以从pg_operator系统表查看操作符的元数据信息。

2、操作符类

对于一个具体的数据类型,如果要能够正常使用索引,除了需要有对应的比较操作符外,还需要操作符类等信息。每个索引都需要对每种数据类型定义一个操作符类,指定在索引中使用的操作符的集合。比如一个int4类型的操作符>、>=、<、<=、=等集合(btree的操作符类必须提供这五种比较操作符)。

在pg_opclass系统表存储操作符类的元数据信息:

今日霍州(www.jrhz.info)©️

一个操作符类定义了用于某个索引访问方法的一种特定数据类型的一组操作:>、>=等,可以用在一个索引的WHERE clause操作符的集合,所以叫做操作符类。

可以为一个数据类型的同一个索引定义多个操作符类,最常用的一个被标记为默认操作符类,作为整个类型在一个索引访问方法下的默认选择。当然也可以创建索引时显式指定使用哪个。

索引访问方法的strategy和support function的关系是:操作符类中的操作符对应表访问方法的具体策略,操作符的函数对应表访问方法的support function。比如btree索引有5个策略:

今日霍州(www.jrhz.info)©️

Btree访问方法定义了3类支持函数:

今日霍州(www.jrhz.info)©️

1)比较两个key,并且返回小于0的整数、0、大于0的整数,分别表示第一个key<第2个key、等于和大于第2个key

2)返回C-callable sort support functions的地址(可选)

3)将测试值与基准值加/减偏移量后的值进行比较,并根据比较结果返回false或者true

特别声明:[【蓝因子教育】PgSQL的操作符、操作符类及操作符族(蓝因子护肤品官方店)] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

多功能稀土电镀添加剂:行业新宠,科瑞思引领潮流(高性能稀土合金电池)

科瑞思数名专业技术人员从事稀土行业30余年,有丰富的生产经验,同时与上海交通大学等科研机构紧密合作,为研发、创新提供技术支持。但不能仅仅以价格为标准,要综合考虑产品的性能、质量和服务等因素,选择性价比高的产品…

多功能稀土电镀添加剂:行业新宠,科瑞思引领潮流(高性能稀土合金电池)

2025年智能厨具新宠:防水围裙如何挑选才最省心?(智能厨房市场)

在厨房烹饪时,围裙不仅关乎美观更影响卫生与便利性。本文教你如何挑选一款符合家庭需求的防水围裙,详解功能特性与选购要点,避免踩雷。

2025年智能厨具新宠:防水围裙如何挑选才最省心?(智能厨房市场)

2025年选购宝宝衣柜置物斗柜要注意什么?抽屉式收纳盒选得好用吗?(2025年生宝宝)

随着2025年新生潮的到来,宝宝的衣橱布局越来越受到家长们的重视。面对琳琅满目的抽屉式收纳盒、置物斗柜,新手爸妈们常困惑于如何挑选最适合的一款。本文聚焦婴童衣柜设计与功能,为您详解如何根据实际需求匹配收纳柜规格,避免踩坑,真正实现整洁美观又

2025年选购宝宝衣柜置物斗柜要注意什么?抽屉式收纳盒选得好用吗?(2025年生宝宝)

研发投入超500亿!华为乾崑致敬墨脱精神,在辅助驾驶无人区开凿另一条“天路”(研发投入33%)

华为乾崑面对的正是一片这样的技术“无人区”:规则未立、标准未明、安全与可靠性需从零构筑。 超过500亿元的研发投入,是华为乾崑在这片荒原上开凿的第一铲。这条路,指向的是更安全的驾驶、更美好的生活,其终点,是将…

研发投入超500亿!华为乾崑致敬墨脱精神,在辅助驾驶无人区开凿另一条“天路”(研发投入33%)

惊呆了!『朱珠』旧照疯传,国内外形象反差大,原来你是这样的『朱珠』(『朱珠』2021)

最近在网上看到了一组『朱珠』的陈年旧照,与她现在的形象反差大得让人惊讶。但后来,男方和另一位富商名媛的亲密照片曝光,她什么也没说,直接选择离开。婚后的生活相对平淡,但她在事业和家庭之间找到了平衡,复出后依然能够根…

惊呆了!『朱珠』旧照疯传,国内外形象反差大,原来你是这样的『朱珠』(『朱珠』2021)