最近需要从数据库读出百万条数据,用分页查询,但是时间太长,于是进行优化
1.发现如果查询结果是有条件的,那么尽量把条件不要写到sql语句中,可以对读取结果进行遍历,获取需要的对象数据
2.分页查询时,当偏移量越大时,后面的分页查询耗时越长,这时就需要我们采用索引的字段进行快速定位到偏移位置,然后读取数据,如下的sql
SELECT * FROM A where id >=(select id from A ORDER BY id LIMIT :page.startIndex,1) LIMIT :page.countEachPage