吴伟贤のBlog

Feed Rss

MySQL百万以上数据分页

05.13.2010, mysql, by .

MySQL优化SQL语句
最快和最少两个原则
最快:
1、使用主键作为条件
2、使用唯一的索引作为条件
3、使用整数(或时间)类型的索引作为条件
4、使用定长的列索引作为条件
最少:
缩小查询范围
用 select id 等代替 select *
用查询先找出最少的主键:select id from my_tab order by id desc limit 0,100

百万以上数据分页实例

取总数: Select SQL_BUFFER_RESULT count(id) as all_ID from my_tab

总页数: 总数/每页条数

最后一页的条数: 总数%每页条数

查询数据:
select id,title,price from my_tab m INNER JOIN ( select id as my_id from ( select id from my_tab order by id desc limit 1741500,100 ) as tmp ) as temp ON my_id=id

第一步、按照最快原则,以主键id作为条件排序 ( select id from my_tab order by id desc limit 1741500,100 ) as tmp

第二步、按照最少原则,只取回当前所需的记录,而且只取id ( select id from my_tab order by id desc limit 1741500,100 ) as tmp

第三步、按照最快原则,以主键id作为条件取回所需的信息 select id,title,price from my_tab m INNER JOIN ( … ) as temp ON my_id=id

显示列表实例: http://58.dwyfz.com

评论已关闭。