七、避免在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值,换成默认值,很多时候让走索引成为可能,同时,表达意思也相对清晰一点;


目录
相关文章
|
编译器 C语言 索引
操作符详解下(非常详细)
操作符详解下(非常详细)
52 0
|
2月前
|
SQL
WHERE 子句
【11月更文挑战第02天】
25 1
|
5月前
|
SQL Serverless 数据库
HAVING和WHERE子句 有什么区别?
【8月更文挑战第2天】
182 17
HAVING和WHERE子句 有什么区别?
|
8月前
|
存储 编译器
操作符详解1(一)
本文介绍了编程中的操作符分类和位操作,包括算术操作符(如 +, -, *, /, %)、移位操作符(<<, >>)、位操作符(&, |, ^)、赋值操作符、单目操作符、关系操作符、逻辑操作符和条件操作符。还讨论了原码、反码和补码的概念,以及左移(<<)和右移(>>)操作符的工作原理,包括逻辑右移和算术右移的区别。最后提到了位操作符按位与(&)、按位或(|)、按位异或(^)和按位取反(~)的运算规则。
66 1
|
7月前
|
编译器 Linux C语言
操作符详解(2)
操作符详解(2)
56 0
|
7月前
|
索引
操作符,详细讲解
操作符,详细讲解
|
编译器 C语言 索引
S5——C操作符详解,你都知道吗? 下
讲解主要内容: 1. 各种操作符的介绍 2. 表达式求值 以下让我们开始正式重新认识和理解操作符吧!
|
Linux C++ 索引
操作符详解(二)
操作符详解(二)
97 0
|
关系型数据库 MySQL 索引
避免在where子句中使用!=或<>操作符
避免在where子句中使用!=或<>操作符