MySQL大表数据LIMIT深分页优化

MySQL大表数据LIMIT深分页优化,第1张

SELECT * FROM table_name LIMIT [offset ,] rows

优化前:

原理:mysql会先查询出10000010(一千万零一十)条数据,然后丢弃前10000000(一千万)条数据,返回最后10(十)条数据,所以偏移量越大,性能就越差。

方法一、

使用 主键索引 进行关联查询

方法二、

每次记录当前页的 最后一条id ,作为下一页的查询条件

一、正常情况下没有人会翻到几千页,我们可以通过限制可以翻页的数量解决这个问题,如:百度、谷歌。

二、手机端可以使用下拉方式进行滚动翻页,每次记录当前页的最后一条id,作为下一页的查询条件。ES可以使用scroll API

现在数据库的该表新建一个字段,名称为rank, 字符类型为text。假设该表的名称为tech。

用两条SQL语句处理上面的问题,

第一条将1960年到1970年之间的设置为高级

update tech set rank='高级' where substring(Tbirthday,1,4) >='1960' and substring(Tbirthday,1,4) <='1970'

第二条将该字段不是高级的都设置为普通

update tech set rank='普通' where rank!='高级';

如果第条件是将1970年以后的设置为普通,则执行以下语句

update tech set rank='普通' where substring(Tbirthday,1,4) >'1970'


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8623249.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存