欢迎投稿

今日深度:

mysql最快分页方法,mysql分页

mysql最快分页方法,mysql分页


众所周知,mysql分页是这样写的:

select * from 'yourtable' limit start,rows

现在我数据库一张表里面有9969W条数据,表名叫tweet_data

select count(*) from tweet_data

执行第一条sql语句,就查6000000条开始的10条,看查询时间



60s这得有多慢!

解决方案一、

有人立马想到了利用索引来提高效率,那么我们就利用主键吧,所以,便有了下面这种sql

select *  from tweet_data where id >=(select id from tweet_data limit 60000000,1)limit 10


看看效果


果然没有多大提升,但是如果数据量在百万级别的话,效率还是可以多番几倍,但是!这明显没有达到我们的要求

解决方案二、

那么就有了下面这种sql语句

select * from tweet_data where id_auto_increase between 60000000 and 60000010





有图为证!


在这里我们只对一张表上的数据进行了操作,而且数据量在1亿条左右,但是如果我们的数据量更大呢?

那么就要涉及到更多知识了!小弟拙见!








MYSQL的最快入门方法。

些基础书先看看

mysql如何实现高效分页

先看下分页基本原理(我拿CSDN百万级数据库来测试):SELECT * FROM `csdn` ORDER BY id DESC LIMIT 100000,2000;耗时: 0.813ms分析:对上面mysql语句说明:limit 100000,2000意思扫描满足条件102000行扔掉前面100000行返回2000行问题limit 100000,20000需要扫描120000行高并发应用里每次查询需要扫描超过100000行性能肯定大打折扣《efficient pagination using mysql》提出clue方式利用clue方法给翻页提供些线索SELECT * FROM `csdn` order by id desc按id降序分页每页2000条当前第50页当前页条目id102000100000我们只提供上页、下跳转(提供第N页跳转)处理上时候SQL语句:SELECT * FROM `csdn` WHERE id<=102000 ORDER BY id DESC LIMIT 2000; #上页耗时:0.015ms处理下时候SQL语句:耗时:0.015ms管翻多少页每次查询只扫描20行效率大大提高了样分页缺点只能提供上页、下链接形式

www.htsjk.Com true http://www.htsjk.com/shujukunews/1998.html NewsArticle mysql最快分页方法,mysql分页 众所周知,mysql分页是这样写的: select * from yourtable limit start,rows 现在我数据库一张表里面有9969W条数据,表名叫tweet_data select count(*) from tweet_data 执行第一条...
评论暂时关闭