《高性能 MySQL 第 2 版》上讲到一个索引策略:
有一个人物信息表包含 country 和 sex 字段。虽然 sex 字段选择性很差(只包含 'm', 'f'),但是考虑到查询中经常会用到,所以创建一个多列索引:( sex,country )。即使查询条件中没有 sex 字段,也可以通过加上 AND sex IN('m', 'f') 使得查询可以用上这个多列索引。
疑问:
用 EXPLAIN 查看查询计划时,IN 查询并不能使用索引( EXPLAIN 输出的 key 字段为 NULL ),书上写的有问题,还是我哪儿没弄明白?
如果 IN 查询不能使用索引,那原因是什么? MySQL 为什么设计成 IN 查询无法使用索引?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.