目前做的系统数据量比较大,出现了速度慢的问题
逐步分析发现了几个问题,拿出来与大家讨论一下
表1 有如下字段
ppid int--厂名
indicatorsid int--指标名
datatime datetime 日期
datavalue float 值
这个表表示某个厂某个时间某个指标的值
主键为 ppid,indicatorsid,datatime 联合主键
索引建立在 datatime 上
实验1
使用
select count(*) from 表1
where year(datatime)=2010 and month(datatime)>=8 and month(datatime)<=8
用时 18ms
使用
select count(*) from 表1
where datatime>='2010-8-1' and datatime<='2010-8-31'
用时 2ms
为什么会出现这么大的差距离
当在索引字段上使用了各种函数后,实际的选择过程便由 “索引查找”,变成了“索引扫描”了。会遍历所有的行的索引项,使执行过程变慢
而使用直接比较的方法 则充份利用了索引的优势
不知是否为正解,欢迎大家讨论
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。