使用索引
使用索引
Loong Tu
这个作者很懒,什么都没留下…
展开
-
2.5 组合索引
文章目录测试数据性能对比测试全表扫描c1单索引扫描c2单索引扫描c1+c2索引bitmap扫描组合索引扫描组合索引使用效果总结组合索引使用判断参考有时候查询中会带有多个字段的查询条件,但是其中任何单个字段的选择率都不高,而多个字段组合起来却有比较好的选择率。这种场景是bitmap索引大显身手的地方,但是bitmap索引对更新性能的影响相当大。PostgreSQL不支持bitmap索引,但是有一个...原创 2020-04-27 10:56:36 · 143 阅读 · 0 评论 -
2.4 理解另外的B-树特性
文章目录函数索引减少空间消耗函数索引PostgreSQL允许创建函数索引。索引并不直接包括值,而是存储一个函数的输出。CREATE TABLE t_test2 ASSELECT *FROMt_test;CREATE INDEX idx_cos ON t_test2 (cos(id));ANALYZE;EXPLAINSELECT id FROM ...原创 2020-04-26 23:43:38 · 102 阅读 · 0 评论 -
2.3 使用聚簇表改善速度
文章目录聚簇表考虑用户想要读取一整个范围的数据的情况,这个范围可能是一定的时间范围、一些块、ID等。这种查询的运行时间会根据数据量以及数据在磁盘上的物理分布而变化。因此,即便用户运行返回同样数量行的查询,两个系统可能不会在相同的时间跨度内提供回答,因为物理磁盘布局可能会不同。比如:EXPLAIN (analyze true, buffers true, timing true)SELECT...原创 2020-04-13 23:40:31 · 171 阅读 · 0 评论 -
2.2 简单的索引
文章目录创建索引使用排序输出一次使用多个索引创建索引发动更多工作进程来扫描非常大的表有时候并不能解决问题。读取整个表只为寻找一行通常也不是什么好主意。因此,我们需要创建索引(PostgreSQL使用Lehman-Yao的高并发性B-树作为标准索引):CREATE INDEX idx_idON t_test (id);SELECT *FROM t_te...原创 2020-03-27 18:09:26 · 209 阅读 · 0 评论 -
2.1 理解代价模型
文章目录使用EXPLAIN深究代价模型创建测试数据:CREATE TABLE t_test ( id serial, name text);INSERT INTO t_test ( name)SELECT 'hans'FROM generate_series(1, 2000000);INSERT INTO t_test ( n...原创 2020-03-23 23:10:24 · 810 阅读 · 0 评论