在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前言 通常针对MySQL大数据量的查询采取“分页”策略,但是如果翻页到比较靠后的位置时查询将变得很慢,因为mysql将花费大量的时间来扫描需要丢弃的数据。 基本分页技巧 通常情况下,为了实现高效分页,需要在查询中WHERE条件列和排序列应用组合索引。 1、字段排序 ORDER BY a ORDER BY a,b ORDER BY a, b, c ORDER BY a DESC, b DESC, c DESC 2、筛选和排序 WHERE a = const ORDER BY b, c WHERE a = const AND b = const ORDER BY c WHERE a = const ORDER BY b, c WHERE a = const AND b > const ORDER BY b, c 3、下面查询是无法使用以上索引的 ORDER BY a ASC, b DESC, c DESC//排序方向不一致 WHERE g = const ORDER BY b, c // 字段g不是索引一部分 WHERE a = const ORDER BY c //没有使用字段b WHERE a = const ORDER BY a, d // 字段d不是索引的一部分 解决大数据量翻页问题 1、将LIMIT M,N的查询改为LIMIT N 实例: mysql> SELECT <cols> FROM profiles INNER JOIN ( -> SELECT <primary key cols> FROM profiles -> WHERE x.sex='M' ORDER BY rating LIMIT 100000, 10 -> ) AS x USING(<primary key cols>); 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持极客世界。 |
请发表评论