











注意:
- 索引倾斜性(单层次深度)
为空和函数为什么不走索引都跟索引树有关
索引跳扫

- 位图索引一个很特殊的情况——位图联合索引
- rowid默认命名方式
- 对象编号
- 绝对文件号
- 块编号
- 行编号
- 更新表尽量不要用for update,容易忘记提交然后锁表,多用rowid,不会锁表
- 要不要建索引,取决于索引对我们是否有很大的帮助,因为建了索引会产生:
- 表竞争
- 更多的日志
- 更多的维护
- 冗余、碎片
- 适合建索引的情况:
- 过滤条件经常进行过滤的
- 唯一值较少,但数据分布较倾斜,要注意同时收集统计信息
- B-tree、位图(物理结构性差异)【较复杂】
- B-tree:有序索引,根里放边界值与rowid(连续块也就是全表扫描,导致有时候用索引查询不一定比没有快)
- 位图:每一行都做一个索引,但是每一个索引都很小,适合运用于多字段的与


- 是否走全表扫描
- 数据量
- 单次I/O能力
- 有序性
- 索引层次
- 块大小
- 索引记录
- 索引的update和表的update
- 索引是先删再插入新的位置
- 表的是在原来的位置
- 索引建立多少个组合索引,看这些组合索引的唯一性差异性是否足够大
- 重建索引的场景:
- 索引倾斜
- 索引偏移
- 索引失效
