我正在尝试为我的表格制作页码,并且需要知道行数。
例如我的查询是SELECT * FROM tbl
,结果是 100 行。
我应该将查询限制10rows
为一页。
如果我这样做,我将无法计算所有行数。
我想知道limit with mysql our php
进程速度之间有什么不同。
如果您有任何想法,请告诉我。
你应该LIMIT
在你的 MySQL 中使用。为什么?
*Because it will take you less time to fetch some amount of data and transmit it instead of getting everything.
*Because it will consume less memory.
*Because working with smaller arrays is generally faster.
至于我,我只在无法在 MySQL 中执行过滤时才使用 PHP 作为过滤器
只是为了更新我的答案,正如Joachim Isaksson已经发布的那样:
SQL_CALC_FOUND_ROWS将帮助您计算所有行数,因此您可以执行正确的分页。
最好的方法可能是同时使用FOUND_ROWS()
和结合它们;
SELECT SQL_CALC_FOUND_ROWS * FROM tbl LIMIT 10
...因此获得前 10 行。然后你可以做;
SELECT FOUND_ROWS()
...获取如果您没有使用LIMIT
.
据我了解您的问题,解决方案可能是这样的:严格由 mysql
现在 slot_size 是您要在页面上显示的记录数,例如 10 start 是根据页面更改的值
如果你有 100k 行会发生什么?当然,您将获得行数,但性能显着下降(并且内存使用量显着增加)。只需使用第二个查询来获取行数并限制 mysql 中的行数