|
7.6. 操作符表一次索引定义可以为索引的每个字段声明一个 操作符表(operator class) .
CREATE INDEX
name
ON
table
(
column
opclass
[
, ...
]);
这个操作符表标识该索引用于该字段要使用的操作 符。例如,一个在 4 字节整数上的 B-tree 索引将使用 int4_ops 表; 这个操作符表包括用于 4 字节整数的比较函数。实际 上,该字段类型的缺省操作符通常就足够了。 拥有操作符表的原因是:对于某些数据类型,可能存在多于一个有意义的顺 序。例如,我们可能想排序两个复数,既可能通过绝对值, 也可能通过实部。我们可以通过为该数据类型定义两个操 作符表,然后在建立索引时选择合适的一个来实现这个目的。 同样还有一些有特殊用途的操作符表:
下面的查询显示所有已定义的操作符表: SELECT am.amname AS acc_method, opc.opcname AS ops_name, opr.oprname AS ops_comp FROM pg_am am, pg_opclass opc, pg_amop amop, pg_operator opr WHERE opc.opcamid = am.oid AND amop.amopclaid = opc.oid AND amop.amopopr = opr.oid ORDER BY acc_method, ops_name, ops_comp;
|