MySQL索引失效问题

这条查询语句为什么没有用到索引?
难道是因为数据太少导致mysql觉得全表扫描比用索引快吗,那不是应该在possible_keys写上可能会被使用的索引吗?

img

你对id name type建立一个联合索引,那么查询的时候就会走索引。

说下原因:
你这里查的是全表数据,而单独一个索引又没有你全部的查询数据,需要回表才行,所以干脆就全表扫描,这样会更快。
而你单独查一个字段的时候,这个字段恰好有索引,那么他根据索引就可以找到你要的数据,所以可以走索引

你的select语句查的是全表,对于mysql来说:既然都是要取全表的数据,那何必走一遍多余的索引去定位主键。
就好比,我要去你家并且我知道你家在哪儿,那我就没必要再去问其他人了。

没带索引条件 本身查询就是全表

你看看是不是表数据太少了,你插入个1到10W条数据看看。数据库使用索引也是有前提的,就是使用索引确实会比全表扫描快,你这只有3条数据,估摸着全表扫描会更快。