1、 以“%”开头的LIKE语句,模糊匹配
2、 OR语句前后没有同时使用索引
3、 数据类型出现隐式转化(如varchar不加单引号的话可能会自动转换为int型)
MySQL中limit 1000000加载很慢的话,你是怎么解决的呢?
方案一:如果id是连续的,可以这样,返回上次查询的最大记录(偏移量),再往下limit
select id, name from employee where id>1000000 limit 10.
方案二:在业务允许的情况下限制页数:
建议跟业务讨论,有没有必要查这么后的分页啦。因为绝大多数用户都不会往后翻太多页。
方案三:order by +索引(id为索引)
select id, name from employee order by id limit 1000000, 10
方案四:利用延迟关联或者子查询优化超多分页场景。(先快速定位需要获取的id段,然后再关联)
SELECT a.* FROM employee a, (select id from employee where 条件 LIMIT 1000000, 10 ) b where a.id=b.id
Was this helpful?
0 / 0