|
|
1
4
SQL_CALC_FOUND_ROWS 给你一个小的结果集,同时让MySQL计算无限结果集的大小:
|
|
|
2
3
|
|
|
3
2
这可能会有所帮助:mysql有 限制 特点:
哪里 限制10,40 意味着从结果10(以0为基础)开始给我40个结果。 您可以在此功能上构建分页。在上述示例中,40表示每页40个结果。 |
|
|
4
2
您可以让mySQL使用DateTimeCALC_OUND_rows计算在没有限制子句的情况下返回的行数。 这将给你20页的第一页:
然后,您可以询问在没有_RESCALC_FUND_rows的情况下返回的行数:
这将在驱动程序内得到回答,而无需向数据库服务器发出另一个请求。它还应该适用于更复杂的查询。 |
|
|
5
0
我会在你的开发环境中做一些实验,看看是否有任何性能优势。 您可以使用MercerTraieste建议的limit子句根据每页记录限制返回结果,但是,您现在每页都要访问数据库,这通常是要避免的。我假设你的PHP脚本使用游标从MySQL服务器获取数据,我想游标保持打开状态,为你的其他页面检索数据。 通过执行LIMITed查询,您实际上可能会对数据库服务器征税更多 当然,我会通过使用MySQL性能监控工具(如果有的话)监控数据库负载来进行测试/实验。 您可能甚至不需要执行COUNT(*)来对它们进行分页,只需确定每页需要多少条记录,然后从不同的结果点开始返回它们。 即,do(伪代码如下)
诚然,其他方法可能更清洁。 |
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |