Heim  >  Artikel  >  Datenbank  >  MySQL分页查询优化_MySQL

MySQL分页查询优化_MySQL

WBOY
WBOYOriginal
2016-05-31 08:47:591038Durchsuche

MySQL分页查询优化

1.问题所在

一般分页是这么设计的:

第1页 每页20条
select * from user limit 0 20;
第2页 每页20条
select * from user limit 20 20;
第3页 每页20条
select * from user limit 40 20;

这就造成了数据量一大,查询低效的问题,数据库容易崩溃。

基本原理是这样的:

liimit 100,20的意思是扫描满足条件的120行,扔掉前面的100行,返回最后的20行,如果是limit 100000,100,需要扫描100100行,再返回最后的100行,在一个高并发的应用里,每次查询需要扫描超过10W行,性能肯定大打折扣。


2.解决方案

多加入一个where条件

情境模拟1:页面只提供“上一页”,“下一页”连接

user表里面有个primary key ID

每页显示20条,当前页第5页,当前页面上id最大值为



未完..............................

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn