机智的MySQL优化器 --- is null
16lz
2021-01-22
【介绍】
工作的越久越到的的问题越多,就越是觉得一些“老话”历久弥新;由于最近的学习计划是深入的学习一遍MySQL优化器;学习过程中的一些成果
也会发布到这里,一来是为了整理自己已经知道的和新学到的,二来是为了给自己的网站做个友情连接
【is null 优化】
如果我们在定义表的时候就给不能为null的列加上not null 那么就将是一个非常好的实践,想想如果接下来有查询要查找col is null的话,因为mysql
已经知道col不可能为null 所以MySQL会直接把这个优化掉,返回空结果集;理由是根本不会存在col is null的行
【看一下is null 有多吊吧】
第一步:建立一个测试表
create table t(id int not null auto_increment primary key, x int not null,y int); create index idx_t_x on t(x); -- x 是not null 的 create index idx_t_y on t(y); -- y 是可以为空的 insert into t(x,y) values(1,null),(2,2),(3,3);
更多相关文章
- PHP OOP和MySQLi连接=致命错误:调用未定义的方法sqmyli::arrayQu
- MySQL 自定义函数.txt
- C标准库中的函数定义在哪里?
- Dojo:不能在AccordionContainer.js中读取未定义的属性“h”。
- Crypto.js:在IE 11中未定义“Uint8ClampedArray”
- Vue自定义指令实现checkbox全选功能
- 是什么导致Meteor中的“模板未定义”?
- 错误对象,本机和自定义,如何区分?
- MVC jquery。无法获取未定义或空引用的属性“className”的dataT