0

github上下载的测试数据库。

建立索引:
clipboard.png

explain select:
clipboard.png

想查询某一时间段入职的人,对employees表进行日期字段的范围查询,
1.为啥解释结果,type字段用的还是ALL?
2.possible_keys里的索引是啥意思?
3.是sql的问题还是索引的问题?应该怎么改?

有没有大佬指点一下。。

linewon 50
2019-02-25 提问
2 个回答
1

已采纳

1.因为你索引查了之后需要回表 优化器认为你回表的开销太大 不如直接遍历全表
2.字面意思,就是可能用到的索引
3.看你的业务需求,比如你只需要返回几个字段而不是全部,可以考虑使用覆盖索引。你也可以force index,强制使用索引,看看走索引快还是全表扫描快(优化器是有误判可能的),如果索引快你就强制索引

0

你的hire_date字段类型不合适吧,是字符串类型吗?

where hire_date > 会将hire_date进行隐式转换,导致索引失效。

hire_date设置为date类型就可以。

撰写答案

推广链接