https://dev.mysql.com/doc/refman/5.6/en/table-scan-avoidance.html

  1. 表很小,直接全票扫描比走索引快
  2. ON 或 WHERE 条件里面没有用索引
  3. 条件里面的索引列使用常量进行比较
  4. 一张表一个索引条件的占比很大,可以添加一个基数小的索引条件进行查询
  5. 用FORCE INDEX (index_for_column)强制走索引、【use index (index_for_column) 只是建议走索引】
SELECT * FROM t1, t2 FORCE INDEX (index_for_column) WHERE t1.col_name=t2.col_name;
  1. --max-seeks-for-key=1000或使用SET max_seeks_for_key=1000告诉优化器假定没有键扫描导致超过1000个键查找。请参见第5.1.7节“服务器系统变量”。