作者kaiyuegg (蛋头)
看板Database
标题[SQL ] mysql date column index 问题
时间Mon Sep 16 15:16:20 2013
大家好~!
MYSQL VER.5.0.51b-community-nt-log
我最近在研究系统效能部分(有关於 mysql date index 没反应)...
遇到了一些问题!
我一般在处理日期部分 都是直接这样下的
select * from `salary` where DATE < '2013-09-15'
但有时候笔数多的时候就算DATE 设 index
mysql explain 的type 也是 all (索引没发挥作用)
这样效能很差 所以在找方法让它变快。
如果设
select * from salary where DATE between '2013-05-10' and '2014-09-29'
explain 出来 type 才会变成 range
(索引有发生作用 但是好像要设到资料里面的上限跟下限里面才有作用)
如果资料里面包含 0000-00-00 想要抓不包含0000-00-00的资料想要这样下
select * from salary where DATE between '1970-01-01 and '2050-12-31'
这时候explain 出来 就变成all 了(索引就没发生作用了)
下 != or <> 0000-00-00 也会变成all
结论
1.想请问大家 mysql 在日期栏位上面 index 的正确用法?
2.如上面所述 我想要抓不是0000-00-00 的资料 用什麽方法可以让index 产生效用?
可能说的不是很清楚...但就是date 在 mysql 的索引好像不是那麽友善?
请大大指点迷津 或是提示一下 我不清楚的部分 tks
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.211.153.57
※ 编辑: kaiyuegg 来自: 218.211.153.57 (09/16 15:17)