mybatis 查询时间时候为啥用不到时间字段上的索引

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis 查询时间时候为啥用不到时间字段上的索引相关的知识,希望对你有一定的参考价值。

因为时间列的值一般选择性较高(即重复值较少),这样查询优化器会先考虑用索引进行检索
除非索引碎片达到一定等级,查询优化器认为表扫描比索引查询快时就不用了
还有,纠正你一点小问题,结束时间不要加00:00:00,这样会将第二天的0点数据也包括在内
虽然概率很低,但情况存在
-------------------
你把列进行转换就用不到索引了,因为转换后的列值无论与数据页还是缓存上存储的都不一致
优化器需要重新扫描表并进行计算,所以一般对列进行函数操作再会慢
参考技术A 有代码吗?

以上是关于mybatis 查询时间时候为啥用不到时间字段上的索引的主要内容,如果未能解决你的问题,请参考以下文章

mybatis时间查询结果展示到页面为啥后面总多了一个0

mybatis selectone 返回为空的问题

mybatis返回一个count加一个字段该怎么设置返回resultType

mybatis返回一个count加一个字段该怎么设置返回resultType

刚买的IPAD,为啥在官网上查不到保修日期

mybatis如何查询返回部分字段?