PostgreSQL 索引

目录

唯一索引

复合索引


唯一索引

CREATE UNIQUE INDEX idx_set_driving_unique ON t_set_driving (

line_code, -- 线路编码

direction, -- 行别

train_number, -- 车次

monitor_set_code, -- 监测单元编码

arrive_time -- 分区键(显式包含,必须!)

);

CREATE UNIQUE INDEX idx_t_set_driving_stat_unique ON t_set_driving_stat (

line_code,

direction,

monitor_set_code,

arrive_time

);

B-Tree

CREATE TABLE test1 (

id integer,

content varchar

);
CREATE INDEX test1_id_index ON test1 (id);

B-Tree索引主要用于等于和范围查询,特别是当索引列包含操作符" <、<=、=、>=和>"作为查询条件时,PostgreSQL的查询规划器都会考虑使用B-Tree索引。在使用BETWEEN、IN、IS NULL和IS NOT NULL的查询中,PostgreSQL也可以使用B-Tree索引。然而对于基于模式匹配操作符的查询,如LIKE、ILIKE、~和 ~*,仅当模式存在一个常量,且该常量位于模式字符串的开头时,如col LIKE 'foo%'或col ~ '^foo',索引才会生效,否则将会执行全表扫描,如:col LIKE '%bar'。

Hash:

CREATE INDEX name ON table USING hash (column);

散列(Hash)索引只能处理简单的等于比较。当索引列使用等于操作符进行比较时,查询规划器会考虑使用散列索引。

复合索引

PostgreSQL中的索引可以定义在数据表的多个字段上,如:

CREATE TABLE test2 (

major int,

minor int,

name varchar

}
CREATE INDEX test2_mm_idx ON test2 (major, minor);

只有B-tree、GiST和GIN支持复合索引,其中最多可以声明32个字段

参考: https://blog.csdn.net/jubaoquan/article/details/78850899

相关推荐
DBA大董2 小时前
TDengine3.0 DBA常用的运维命令和SQL2
运维·数据库·时序数据库·dba·tdengine
ManageEngineITSM2 小时前
什么是CMDB?配置管理数据库的定义、作用与建设方法一文讲清
大数据·数据库·人工智能·资产管理·变更管理
IvorySQL3 小时前
PostgreSQL 日报|PG19 外键快速路径隐患已修复(8 月 23 日)
数据库·postgresql
Elastic 中国社区官方博客3 小时前
OpenTelemetry Java 扩展:无需分叉 agent 即可自定义追踪
java·大数据·运维·开发语言·数据库·人工智能·elasticsearch
01传说3 小时前
redis开机自启脚本
数据库·redis·缓存
这个DBA有点耶3 小时前
数据库运维的“自动驾驶”:KES-Operator如何把DBA经验编码为软件
数据库·dba·自动化运维
动力 continue4 小时前
MySQL 基础篇 · SELECT 查询大
数据库·sql·mysql·select
程序员-Benothing4 小时前
MySQL 索引下推是什么?——深入理解 ICP 原理与实践
android·数据库·mysql
这个DBA有点耶4 小时前
MySQL主从延迟的“最后一公里”:如何把延迟压到极限
数据库·程序员·架构