Mysql时间类型列的索引使用

2019-07-31  本文已影响0人  二十五_0415

问题:mysql中datetime类型的列建立索引之后,怎么在查询中使用到索引?

比如:我要查今天的数据。

1.=前面列使用date函数

SELECT * FROM A WHERE DATE(CREATE_DATE) = '2019-07-31';

这种方式我想不用试就应该知道了是不会使用索引的,使用explain看一眼是不是和我想的一样

1.png

果然,扫描了467718行,key列为空,没有使用到索引

2.>后面使用date函数

SELECT * FROM A WHERE CREATE_DATE >= DATE('2019-07-31 17:36:00');

额,这种方式不一定会有人用,但还是看一下,因为我们可以直接使用这种方式

SELECT * FROM A WHERE CREATE_DATE >= '2019-07-31';
SELECT * FROM A WHERE CREATE_DATE >= '2019-07-31 00:00:00';

结果是一样的


1.png

扫描了336行,key列也是我们的索引名称

3.使用mysql的CURDATE()函数

  SELECT * FROM A WHERE CREATE_DATE >= CURDATE();

这种跟2是一样的,CURDATE()返回的就是 '2019-07-31' 。

上一篇 下一篇

猜你喜欢

热点阅读