开发者社区> 问答> 正文

有关sql语句使用索引优化的问题

现在要对数据库中的数据进行统计,统计最近一个月的数据,现数据库的设计中有3个跟时间有关的字段
1.year
2.month
3.day
三个字段分别建有索引
现在统计最近一个月的数据需要将上述三个字段使用concat连接起来合并成一个完整的时间做条件进行查询,可是问题来了,使用concat函数后索引将失效,这个SQL该如何优化才能够让其执行索引查询.sql如下:
1
这个sql该如何优化才能让你索引生效,使用索引策略查询呢?求指点

展开
收起
落地花开啦 2016-02-21 17:46:54 2607 0
2 条回答
写回答
取消 提交回答
  • 实际上需求转化一下,就是年份确定,月份确定,所以你只需要写 year=? and month=?就可。年份和月份需要你用当前日期解析出来

    2019-07-17 18:46:13
    赞同 展开评论 打赏
  • 喜欢技术,喜欢努力的人

    这个怎么也用不到索引的,DBMS压根没有为year-month-day类型的数据维持索引数据。为什么不使用联合查询,将日期拆分得到年月日,然后再:
    select #_filed from #_table where year=#_year and #_month = #_month and day = #_day
    这样就可以使用索引。

    2019-07-17 18:46:13
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载