导致全表扫描的情况
来源:互联网 发布:交大医学院网络教育 编辑:程序博客网 时间:2024/03/28 22:36
1.查询时没有设定查询条件。例如:select * from tablename;
2.查询条件中不要使用in操作符。如果是联系范围推荐可以是用between代替。
3.not in使用,not in不会走索引。
处理方式:用exists 或者外联结 + 判断为空代替
4.is null 或 is not null 会导致索引失效,引起全表扫描
5.查询条件中使用了不等于操作符(<>,!=)导致索引失效
处理方式:将不等于操作符换成or
6.or使用不当导致索引失效。例如:where column1 < '1' or column2 >'3' 只有column1和column2都使用了索引,索引才会有效,否则导致索引失败。
7.like使用不当。
解决办法:首先尽量避免模糊查询,如果因为业务需要一定要使用模糊查询,则至少保证不要使用全模糊查询,对于右模糊查询,即like‘…%’,是会使用索引的;左模糊like‘%...’无法直接使用索引,但可以利用reverse + function index的形式,变化成like‘…%’;全模糊是无法优化的,一定要的话考虑用搜索引擎。出于降低数据库服务器的负载考虑,尽可能地减少数据库模糊查询。
8.select count(*) from table;这样不带任何条件的count会引起全表扫描,并且没有任何业务意义,是一定要杜绝的。
9.sql的where条件要绑定变量,比如where column=:1,不要写成where column=‘aaa’,这样会导致每次执行时都会重新分析,浪费CPU和内存资源。
0 0
- 导致全表扫描的情况
- 什么情况会导致Oracle数据库的全表扫描
- 不会使用索引,导致全表扫描情况
- 什么情况导致全表扫描,而不是用索引
- 什么情况导致全表扫描,而不是用索引 收藏
- 不会使用索引,导致全表扫描情况
- 什么情况导致全表扫描,而不是用索引
- 不会使用索引,导致全表扫描情况
- 不会使用索引,导致全表扫描情况
- 【转】什么情况会导致Oracle数据库的全表扫描
- 导致全表扫描的SQL
- 【翻译自mos文章】SYS_OP_C2C 导致的全表扫描(fts)/全索引扫描
- 字段类型不一致导致的全表扫描
- mysql查询导致全表扫描
- 什么情况下使用全表扫描
- 一次简单的性能优化诊断,聚簇因子过高导致全表扫描。
- SQL中WHERE 变量 IS NULL 条件导致全表扫描的问题
- SQL中WHERE变量IS NULL条件导致全表扫描问题的解决方法
- 【求职之路】(1)利用二分法查找一个数字在数组中的位置
- 解读 SysNativeCompressFile
- FABS函数
- 狄拉克函数- dirac 分布
- python安装环境的配置
- 导致全表扫描的情况
- CSS各种对齐代码,左对齐、右对齐、中间对齐、底部对齐、两端对齐等,代码简单
- Centos7虚拟机网络重启failed失败
- 283.Move Zeroes(C语言)
- pat L3-011. 直捣黄龙(dfs简单应用)
- 【JSON 注解】JSON循环引用2----JSON注解@JsonIgnoreProperties+JAVA关键字transient+后台对象与JSON数据的格式互相转化
- 31. Next Permutation
- JZOJ 3638. 【COCI2013】slasticar
- 洛谷P2051 [AHOI2009]中国象棋