现在要对数据库中的数据进行统计,统计最近一个月的数据,现数据库的设计中有3个跟时间有关的字段
1.year
2.month
3.day
三个字段分别建有索引
现在统计最近一个月的数据需要将上述三个字段使用concat连接起来合并成一个完整的时间做条件进行查询,可是问题来了,使用concat函数后索引将失效,这个SQL该如何优化才能够让其执行索引查询.sql如下:
这个sql该如何优化才能让你索引生效,使用索引策略查询呢?求指点
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实际上需求转化一下,就是年份确定,月份确定,所以你只需要写 year=? and month=?就可。年份和月份需要你用当前日期解析出来
这个怎么也用不到索引的,DBMS压根没有为year-month-day类型的数据维持索引数据。为什么不使用联合查询,将日期拆分得到年月日,然后再:select #_filed from #_table where year=#_year and #_month = #_month and day = #_day
这样就可以使用索引。