Notes on ‘Expert Oracle’ — No.11.4: 索引 — Tips
1.B* 索引不会为 全null 值建立索引条目 所以 select * from T where x is null 不会使用索引 (如果索引建在x字段上) 不过, 如果满足以下两个条件, 仍会用到索引 a. 索引建在 (x,y) 上 b. y 被定义为Not Null字段 2. 外键上要不要索引? a.一般来说都要,否则的话 i.如果修改父表的主键值或者删除父表中一行记录,会导致整个子表被锁 ii.父表中的On Delete Cascade被触发时 也会导致全表扫描 iii.按父表中的值查询子表记录时,由会导致对子表的全表扫描 b.相反地,如果同时满足以下所有条件,就不用加索引 i.不会修改父表主键值且不会删除父表记录 ii.不存在从父表到子表的连接 3.为什么我的索引没有被用上? i. 索引建在 (x,y)复合字段上,但查询谓词只查了x …