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

相关推荐
ClickHouseDB8 分钟前
ClickHouse 26.6 版本发布说明
数据库
Wang's Blog11 分钟前
Java框架快速入门:深入MyBatis-Plus高级DML操作(ID策略·逻辑删除·乐观锁)
java·数据库·mybatis
小二·11 小时前
RAG + 向量数据库实战:ChromaDB / Milvus / FAISS 选型与性能横评
数据库·milvus·faiss
矜持的左手12 小时前
电子小白的枕边书:电子学(The Art of Electronics)
数据库·restful
吴声子夜歌12 小时前
Redis 5.x——布隆过滤器
数据库·redis·缓存
蓝天下的守望者12 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
上海云盾-小余12 小时前
网站频繁遭遇 SQL 注入溯源与原生漏洞修复全流程总结
数据库·sql
数据库小学妹13 小时前
国家区域医疗中心国产化改造实战:数据库选型、跨院区数据互通与踩坑经验
数据库·国产数据库·数据库选型·医疗信息化·信创数据库·医疗信创
AllData公司负责人14 小时前
数据库同步平台|AIIData数据中台实现OceanBase、达梦数据库、OpenGauss、人大金仓、Hive、TDengine 一键接入Doris
大数据·数据库·hive·mysql·oceanbase·tdengine