尽量的使用覆盖索引
在查询语句中,如果返回的字段较少,那么应该尽量的使需要的所有字段包含在索引中,这样可以使用覆盖索引来加快查询速度....这个最常出现的是请求了过多的列,也就是select *,此外还有查询了10000行但是在拿到前10行之后就扔掉了其他的数据.
是否扫描了过多的数据?...使用近似值
当表中数据量非常大的时候,很多的count查询是不需要精确计数的,此时可以使用其他近似值,比如explain中的行数,比如information_schema.tables中的行数等....确保order by / group by 只根据一个表上的字段进行,这样才有使用索引进行排序分组的可能性....SQL_BUFFER_RESULT
该hint告诉mysql,将查询结果放入到临时表中,然后尽快释放表锁.SELECT SQL_BUFFER_RESULT * FROM TABLE ...;
SQL_BIG_RESULT