场景:
KEY `index_gscode_f4_f7` (`gscode`,`f4`,`f7`) USING BTREE
KEY `index_gscode_f7_f4` (`gscode`,`f7`,`f4`) USING BTREE
原因:
MYSQL在碰到复合索引时,只要碰到范围(<,>,<=,>=)的查询字段,过滤该条件后就去回表了,不管后面的字段有没有可以索引可以走。
结论:
创建索引时,把能过滤无效数据的字段放在前面。
场景:
KEY `index_gscode_f4_f7` (`gscode`,`f4`,`f7`) USING BTREE
KEY `index_gscode_f7_f4` (`gscode`,`f7`,`f4`) USING BTREE
原因:
MYSQL在碰到复合索引时,只要碰到范围(<,>,<=,>=)的查询字段,过滤该条件后就去回表了,不管后面的字段有没有可以索引可以走。
结论:
创建索引时,把能过滤无效数据的字段放在前面。