推荐书籍
- 《Oracle性能诊断艺术》
- 《Oracle高效设计》
- Oracle官方文档
索引
索引数据结构分类
- B树索引
- 创建方式:create index name on table(field)
- 特点:
- 采用树结构存储,优化= > <等性能
- 一个查询中只能使用一个B树索引(Oracle可设置更改)
- 位图索引
- 创建方式:create bitmap index name on table(field)
- 特点:
- 只能用于=、in等指定值查询
- 当数据重复度高时使用,在数据值数量/数据行数<1%时使用。
- 一个查询中可以同时使用多个位图索引。
- 重建速度快,但对插入、更新、删除效率影响较大,一般常用于OLAP系统。
- Hash索引
用于聚簇表
分区表索引
- 全局索引:
索引独立于分区,索引存储在一个地点,不像表一样进行分区 - 本地分区索引:
索引自动根据数据进行分区,每个索引分区对应一个表分区 - 全局分区索引:
将索引按照Hash或范围进行分区,索引的分区与表分区非1:1关系
全局索引和分区索引的选择
- 表分区列是索引的一部分,使用分区索引
- 索引具有唯一性,且不是在分区列中,使用全局索引
- 可管理性优先级高时,使用分区索引(可以快速删除、移动一个分区及其索引)
- 关注响应时间应优先选择全局索引,关注吞吐量优先选择分区索引(全局索引消耗资源较多,但速度较快;分区索引速度较慢,但消耗资源少)