MySQL-mysql 组合索引

发布于 2017-01-08 12:23:10 字数 294 浏览 1312 评论 2

1张千万表 id,type,status,create_time 等字段
组合索引,(type,status,create_time)

现在需要查询时间段内的记录,
eg:select * from table where type=0 and status=1 and create_time > '2013-10-11 10:10:10' and create_time < '2014-10-11 10:10:10'

使用一个 create_time 时,索引有效,两个create_time 索引失效

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

归属感 2017-09-15 03:33:11

组合索引满足最左原则,你的那个就符合前三个,你改成between .. and 更好,理解也快,

晚风撩人 2017-03-23 10:41:41

select * from table where type=0 and status=1 and (create_time > '2013-10-11 10:10:10' and create_time < '2014-10-11 10:10:10');

这种在某些版本上会转换成 between ... and
但是写成

select * from table where type=0 and status=1 and create_time between '2013-10-11 10:10:10' and '2014-10-11 10:10:10';

不是更可读,更好理解吗?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文