Oracle-索引
程序员文章站
2022-03-28 13:49:16
...
一、建立索引应该思考的问题
1. 该表的读写比率大小?
- 若是查询很少的情况下不宜加索引
- 当修改性能要求大于读取性能时间不宜加索引
2. 多大数据量的表应该加索引?
- 据经验来说,一般超过10万条就应该考虑索引,但不是绝对的。有些表查询频繁,消耗资源多。应该及时查看进行分析,及时加上应该有的索引,使应用系统跑得轻松。用户会满意。某些表不常使用,就可以缓一缓,看情况和用户反响再决定加不加。因为加了索引相关表的数据的插入和修改都会由于索引的问题额外消耗一些资源。总之这是个权衡效率的问题。可以通过一段时间的观察和试验来取舍
- 字段列少的不应加索引
3. 索引应该加在哪些字段上?
- 对于类型为image,text,bit等长值不宜加字段
- where条件使用较为频繁的字段
- 表关联键
二、导致索引失效的情况
- where条件中使用or且存在条件全表查询的情况,例如
-- 当name加索引而age没加索引,age>18就会触发全表查询,放弃索引
select * from name>0 or age>18;
- like语句以%号开头索引失效(前通配走全表,后通配走索引)
- 索引字段使用一般函数、不等于、数学运算、is null、is not null索引会失效,注意对于max、min函数索引任然有效
三、Oracle索引原理复习
平衡树排序,然后二分法查找
默认索引创建的是B-tree索引,由根节点、分支节点、叶子节点基础部分组成;叶子节点包含条目直接指向表里的数据行。
上一篇: iPhone 13 Pro Max电池续航有多BT?用了3天还剩7%
下一篇: MongoDB