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

相关推荐
OnlineProxy8 小时前
亚马逊多账号运营:如何在规避“关联封号”风险的同时实现电商规模化扩张
服务器·数据库·redis
辻弋2019 小时前
五年前的旅行视频糊成马赛克?Video2X用Real-ESRGAN逐帧重建细节,但只支持Windows、集显用户建议直接放弃
服务器·数据库·windows·游戏引擎·电脑
可乐鸡翅yeah_10 小时前
业务中 M3U8 水印相关坑,硬水印和动态水印区别
前端·网络·数据库·ffmpeg·m3u8在线
石头麻辣鱼11 小时前
Bamboo 调度系统 OceanBase 适配实战:存储过程迁移踩过的三个大坑
数据库
龙亘川11 小时前
数智驱动民政升级 精准守护民生保障
大数据·数据库·人工智能
念何架构之路11 小时前
zap扩展生态与总结
java·前端·数据库
晚安日记wanna12 小时前
MySQL 回表为什么这么慢?5 种优化手段逐个拆解
数据库·mysql·性能优化
第七页独白12 小时前
汽车零件厂如何通过 QMS 真正落地 IATF 16949——QMS软件系统:品质检验-内审稽核-8d客诉管理:全星质量管理软件系统
java·前端·数据库
晚安日记wanna12 小时前
索引建了却不走?7 个失效原因逐层排查
数据库·mysql·性能优化
KID1412号12 小时前
PostgreSQL入门
数据库·postgresql