七、避免在where子句中使用!=或<>操作符

简介: 七、避免在where子句中使用!=或<>操作符

1、反例

1. SELECT * FROM user WHERE salary!=5000
2. 
3. SELECT * FROM user WHERE salary<>5000

2、理由

并不是说使用了is null或者 is not null就会不走索引了,这个跟mysql版本以及查询成本都有关;

如果mysql优化器发现,走索引比不走索引成本还要高,就会放弃索引,这些条件 !=,<>,is null,is not null经常被认为让索引失效;

其实是因为一般情况下,查询的成本高,优化器自动放弃索引的;

如果把null值,换成默认值,很多时候让走索引成为可能,同时,表达意思也相对清晰一点;


目录
相关文章
|
6月前
|
存储 编译器
【操作符与关键字】
【操作符与关键字】
52 0
|
4月前
|
Java 测试技术
day9:运算符、表达式和语句
【7月更文挑战第9天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
36 6
|
10天前
|
SQL
WHERE 子句
【11月更文挑战第02天】
15 1
|
3月前
|
SQL Serverless 数据库
HAVING和WHERE子句 有什么区别?
【8月更文挑战第2天】
111 17
HAVING和WHERE子句 有什么区别?
|
3月前
|
SQL 数据处理
子查询的类型
【8月更文挑战第2天】子查询的类型
87 29
|
3月前
|
数据处理 数据库 开发者
子查询的不同类型详解
【8月更文挑战第31天】
63 0
|
6月前
|
C语言
条件操作符
条件操作符(三目操作符)是C语言中的唯一一个三元运算符,形式为:`表达式1 ? 表达式2 : 表达式3`。如果`表达式1`为真,执行`表达式2`并返回结果;否则执行`表达式3`并返回结果。例子展示了如何用条件操作符输出两个数中的较大值。
32 1
|
5月前
|
SQL 关系型数据库 MySQL
常用的子句和关键字
常用的子句和关键字
|
Linux C++ 索引
操作符详解(二)
操作符详解(二)
84 0
|
存储 编译器 C语言
7.27C语言知识点之操作符
7.27C语言知识点之操作符
56 0