目录
执行计划介绍
索引介绍
不同的索引类型及适用场景
组合索引、条件索引、表达式索引
索引使用技巧
服务器
io
测试工具
-fio
数据库压测工具
-pgbench
快速构建海量数据
内容
1
、 执行计划介绍
数据库接受到查询
sql
时,会生成不同的查询树、查询方法、每种都得到相同的结果集,
数据库优化器会根据相应的配置预计算这些查询的消耗,然后选择一个效率最高的查
询,即执行计划。
Explain
Explain [(option [,…])] statement
Explain[ANALYZE][VERBOSE] statement
Where option can be one of:
ANALYZE[boolean] ---
得到
statement
的真实运行时间,默认为
false
VERBOSE[boolean] ---
得到
statement
语句的执行计划和执行计划中的每一个节点的详细信
息,默认为
false
COSTS[boolean] ---
得到执行计划中每个节点的
cost,rows,width
的估算值,默认
true
2
、 索引
常用参数
Unique
创建唯一索引
Concurrently
在线创建索引,不会阻塞写操作
Using method
默认为
btree
Asc/desc
排序、默认升序
Nulls first/last
空值在索引中的位置,默认
null
放在最后
索引类型
Btree
支持:
< > = <= >= between…and… in
Hash
只支持等值查询。特别适用于字段
value
非常长(不适合
btree
索引,
btree
一个
page
至少要存储
3
个
ENTRY,
所以不支持特别长的
value
)的场景,例如很长的字符串,并且用户只需
要等值搜索,建议使用
hash index
。
gin
倒排索引,存储被索引字段的
value
或
value
的元素,以及行号的
list
或者
tree
gist
支持类型:几何类型(上下左右、包含、相交)
空间类型
ip
类型
评论