MSYQL-取两个时间字段中的数据-索引如何建?
資深大佬 : sue0917 0
如题,一张表中有一个开始时间字段 start_datetime,结束时间字段 end_datetime,
需求是取出当前时间大于开始时间,小于结束时间内的数据
需求是取出当前时间大于开始时间,小于结束时间内的数据
索引应该如何建呢?
大佬有話說 (17)
索引应该如何建呢?
联合索引或者分别建立索引感觉用处都非常有限啊,老哥们。。
比如开始结束时间都在今天前的,和开始结束时间都在今天后的,分别有 200 万条数据。
单独建开始时间或结束时间索引,都扫描出了 200 万条以上的主键 id 去回表?,基本是无效索引了。。
搞个联合索引,好处可能是可以通过索引确实找到了主键 id 去回表,不过依然需要连续比对几百万条数据,开销依然很大
另外经常更新的字段做索引,不知道好不好。。想了下也还好,当做删除数据插入新数据了
如果优化器决定不走索引,你又想要用索引,那就自己手动标明使用的索引就行了。
问题像下面描述的,按照你这种方式建立索引,好像比对次数也有 200 万。。。。感觉不太合适
比如开始结束时间都在今天前的,和开始结束时间都在今天后的,分别有 200 万条数据。