本文介绍了“用SQL优化极限分页的方法是什么”的知识。很多人在实际案件操作中都会遇到这样的困难。接下来,让边肖带领大家学习如何应对这些情况!希望大家认真阅读,学点东西!
Limit和OFFSET的问题其实就是OFFSET的问题,会导致MySQL扫描大量不必要的行,然后丢弃。如果使用书签,您可以记录上次检索到的数据的位置。然后下次,你可以直接从记录的位置开始扫描。
我们来看一个案例:
mysqlselectid,product _ id from productorderbyiddescriptlimit 20;
- -
|id|product_id|
- -
| 71986 | 63308 c 71 b 16642 a4 bfb 75 CBE 1049188 b |
| 71985 | bb8 EBA 635 b 6 a 4726 b 4172143 fb1c 1d 04 |
| 71984 | 273243 E1 C9 c 64 ee 39351 ea 01 a 2489 fa 6 |
| 71983 | 83f 253 B3 ecde 47 eebe 6a 6397 DC 0d 319 e |
| 71982 | 3c 9780 c 86 D1 F4 f 24 b 95 c 9 a 08 b 4839 c 99 |
| 71981 | 183 b 197924434 de 0a 47d 1786773 CB 66 f |
| 71980 | aff3b 1385 ee 74893 a 3729664991 d8e 86 |
| 71979 | c 662 A0 E5 C4 d 64339 a5a 68 b 99268840 e 1 |
| 71978 | Fe 905 E3 dbdd 2421 c8 E5 ca 47 CD 47232 a 4 |
| 71977 | 9a 44 f 05 FDE 72425 fa 4498 b 091d 27 FD 58 |
| 71976 | c31 FBD 9 C4 AC 46 ffac 34 b2a 14 a 49 FB 9f |
| 71975 | 62056557531143 e 18 BC 813 c 0 c 930d 96 |
| 71974 | 4ea 1 f0c 978 ca 4441 a 232 f 563 ba 7181 ee |
| 71973 | 413317481 CFC 449394 de d 39 b 53 A0 F5 cf |
| 71972 | 493 C6 da 548394 BDC 871d 058 b
c93a9b93 |
| 71971 | 98fafa3c690243998b18da8a9f165297 |
| 71970 | 2e299b3ad38d4ce48bd1481799cb11a2 |
| 71969 | 7f176c93d9ac42659b40a40f4fbea937 |
| 71968 | d87671838a3246ddb393a336b8806905 |
| 71967 | 301e3b9cb8ab40d588547a9b7f8fdaba |
+--------------+----------------------------------+
按照id倒序排列,第一页取20行,id范围从71967到71986。
下一个分页:
mysql>select id,product_id from product where id < 71967 order by id desc limit 20; +--------------+----------------------------------+ | id | product_id | +--------------+----------------------------------+ | 71966 | fec841328f76466098e0f7ff71ad2e64 | | 71965 | 91383bdf53f64c0c957f00f5e894ee08 | | 71964 | 0fe1f36aecc64e59b1f833e2a809b1d9 | | 71963 | 583ccc4dd2bc48889b672c700ff723df | | 71962 | 2d7417d85f7d4bc5a403be95d42c66c2 | | 71961 | f46e02c1abc046ffba6a893a0af32211 | | 71960 | 1acd9bf330d24cfd90005cc2ade28f8d | | 71959 | cea963ee97814bc09b657c0453b0cb55 | | 71958 | 700caf0dc6c745198d141c8006f87ee3 | | 71957 | 2239be33ebd2485ea6209b5186456531 | | 71956 | 30a4095734074612ad0a0fb32bdab1e4 | | 71955 | d9071a755a994f2eae11c9fb17e8071a | | 71954 | 4d0453c47af347078bc6bc2b5942061c | | 71953 | dda45cced0844fd992194cbaa334e420 | | 71952 | 6e65d866889e4b15abe272f1e814ecc2 | | 71951 | 4b22cdbb1f34448494251fd4f3eb6425 | | 71950 | 38f5d0cac07a4dc5a33ca62609a6debd | | 71949 | faa53f03f4714c9bb0991eb6b18ed7d9 | | 71948 | c5719ee4fcad48d0a6bfc8f28b415f1e | | 71947 | c6beaaa94829465ab1f9b6e0187d2721 | +--------------+----------------------------------+
这样就可以保证每次分页查询的效率都很高,但是使用这样的查询有一定的条件限制,比如:
1、必须有主键,并且是单调递增的。
2、如果查询语句有group by分组,那么就不能采用这种方法。
“SQL优化limit分页的方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/71994.html