我正在尝试为我的桌子制作页码,并且需要知道行数。
例如我的查询是SELECT * FROM tbl
,结果是100个。
我应该将查询限制为10rows
一页。
如果我这样做,我就无法计算所有行数。
我想知道处理速度limit with mysql our php
之间是否有任何不同。
如果您有任何想法,请告诉我。
答案 0 :(得分:3)
你在MySQL中使用LIMIT
。为什么呢?
*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会帮助您计算所有行数,因此您可以执行正确的分页。
答案 1 :(得分:2)
最好的方法可能是使用FOUND_ROWS()
并将它们组合在一起;
SELECT SQL_CALC_FOUND_ROWS * FROM tbl LIMIT 10
...得到前10行的结果。那你就可以做;
SELECT FOUND_ROWS()
...获取未使用LIMIT
时可获得的总行数。
答案 2 :(得分:0)
如果您有100k行会怎样?当然,您将获得行数,但性能显着下降(并且内存使用量显着增加)。只需使用第二个查询来获取行数并限制mysql中的行
答案 3 :(得分:0)
据我了解你的问题,解决方案可能是这样的:严格来说是mysql
现在slot_size是你要在页面上显示的记录数,比如说10 start是将根据页面
更改的值