使用索引不一定能提高查询性能
来源:互联网 发布:程序员的缺点 编辑:程序博客网 时间:2024/04/28 11:46
索引列的选择性不高。
我们假设典型情况,有表emp,共有一百万行数据,但其中的emp.deptno列,数据只有4种不同的值,如10、20、30、40。虽然 emp数据行有很多,ORACLE缺省认定表中列的值是在所有数据行均匀分布的,也就是说每种deptno值各有25万数据行与之对应。假设SQL搜索条件DEPTNO=10,利用deptno列上的索引进行数据搜索效率,往往不比全表扫描的高,ORACLE理所当然对索引“视而不见”,认为该索引的选择性不高。
但我们考虑另一种情况,如果一百万数据行实际不是在4种deptno值间平均分配,其中有99万行对应着值10,5000行对应值 20,3000行对应值30,2000行对应值40。在这种数据分布图案中对除值为10外的其它deptno值搜索时,毫无疑问,如果索引能被应用,那么效率会高出很多。我们可以采用对该索引列进行单独分析,或用analyze语句对该列建立直方图,对该列搜集足够的统计数据,使ORACLE在搜索选择性较高的值能用上索引。
总结:
1.平均数据范围符合条件用索引比全表扫描差,因为选择性不高。
2.对符合条件数据量少的,使用索引效率会高出很多
0 0
- 使用索引不一定能提高查询性能
- 提高查询性能-全文索引
- 数据库索引为何能提高性能
- 使用索引提高查询速度
- 使用索引提高查询速度
- ABAP 查询性能提高之索引
- 使用查询改写提高查询性能
- 使用查询改写提高查询性能
- 使用SQLServer2000索引视图提高性能
- 使用索引提高SQL Server性能
- 如何使用索引提高查询速度
- 如何使用索引提高查询速度
- 如何使用索引提高查询速度
- SQL Server-聚焦过滤索引提高查询性能
- 让mongoDB也能使用in查询,提高查询速度
- 使用计算列提高查询性能
- 使用Filtered Indexes提高查询性能
- 使用各种查询选择来提高性能
- iOS开发出现CUICatalog: Invalid asset name supplied:
- 短信拦截和发送
- 蓝牙API介绍
- 设置对话框
- Android网络请求库okHttp进行post、get请求
- 使用索引不一定能提高查询性能
- nyoj685 查找字符串(map)
- Android Volley框架的使用(二)
- Spring源代码中设计模式
- 基于Flume的美团日志收集系统(一)架构和设计
- Custom Window Chrome in WPF
- HDU 5600 N bulbs
- ajax传数组到后台Springmvc无法接受的问题
- C或C++中函数的参数传递——值传递、指针传递、引用传递