说明
之前对Postgres/GP的索引测试见GP索引调优测试–基本篇.md和GP索引调优测试–排序篇,此文给出原理解释。
原理
建议先阅读“深入理解计算机系统(原书第2版)的第6章 存储器层次结构”,再了解B树,最后阅读数据库索引原理及优化,可以对索引的原理有很清楚的了解。
这里给出使用索引和不使用索引时,查询时间的复杂度,
查询类型 | 无索引复杂度 | 有索引复杂度 |
---|---|---|
特定数据(= ) |
O(n) (注:n次顺序读取) | O(lgn+1) (注:lgn次查找+1次随机读取) |
特定范围(range ) |
O(n)(注:n次顺序读取) | O( lgn+m)(注:lgn次查找+m次随机读取,m为range的范围) |
排序 |