MySQL 海量数据的 5 种分页方法和优化技巧
发布时间:2022-09-21 14:58:25 所属栏目:MySql教程 来源:
导读: 昨天,群里有一个网友问我关于 MySQL 大数据量分页的问题。有人回答说用缓存 Redis,这个就比较麻烦了。而且别人问的是 MySQL 分页,而不是架构如何设计!
那么我今天就来分享一下,5 种常见的 MySQL Li
那么我今天就来分享一下,5 种常见的 MySQL Li
昨天,群里有一个网友问我关于 MySQL 大数据量分页的问题。有人回答说用缓存 Redis,这个就比较麻烦了。而且别人问的是 MySQL 分页,而不是架构如何设计! 那么我今天就来分享一下,5 种常见的 MySQL Limit 分页方法和优化技巧。 第一种方法,直接使用数据库提供的 SQL 语句 limit 来分页。 适用于数据量较少的情况。缺点是,全表扫描,速度会很慢且有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3)。Limit 限制的是从结果集的 M 位置处取出 N 条输出,其余抛弃。 方法二,建立主键或唯一索引,利用索引(假设每页 10 条)。 适用于数据量较多的情况。这样方法,会使用索引扫描,速度会很快。如果你的数据查询出来并不是按照 pk_id 排序的,那么就有可能漏掉数据的情况。所以使用的时候要注意。不行的话,你就用方法三。 方法三,基于索引再排序。 这种方法适用于数据量较多的情况。最好 ORDER BY 后的列对象是主键或唯一索引,使得 ORDER BY 操作能利用索引。 这种方法的特点是索引扫描,速度会很快。 方法四,基于索引使用 prepare(第一个问号表示 pageNum,第二个 ?表示每页元组数)。 这个 SQL 很厉害mysql分页,适合海量数据的场景。这个查询会使用索引扫描,速度会很快。prepare 语句又比一般的查询语句快一点。 方案五,利用 MySQL 支持 ORDER 操作可以利用索引快速定位部分元组,避免全表扫描。 例如:读第 101000 到 101019 行元组( pk 是主键/唯一键)。 时间关系,我都不贴测试数据了。有问题,明天群里讨论。 学习是时刻进行的,不能遇到问题了,才去学。那就晚了,还是下面这个课程,很便宜。想深入理解 MySQL,建议你还是看看吧,返现还在进行,通过我的二维码购买,返现 5 元红包。 (编辑:财气旺网 - 财气网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐