我正在为我的框架忙于一个分页组件,我想知道以下哪两个更快(或者如果有更好的解决方案更好)。
我的想法是让我的对象按此顺序执行以下操作:
从我所看到的,我有两个选择之一:
结果较少的多个查询
一个查询并让PHP进行处理
哪个会更快?我理解选项1的结果越多越好,但它仍然感觉就像2个查询来计算行,然后返回某些结果仍然感觉比只返回所有结果的1个查询更快,并让PHP完成其余的处理。
还有另一种我想念的方式吗?
答案 0 :(得分:3)
我们不知道您的框架在做什么,数据库的结构如何,或者PHP代码对数据的处理程度。对两者的核心项进行编码,并对同一个模拟数据集运行测试。
如果你真的想去城里,可以对一系列占位符数据进行一系列测试,并使用各种负载测试项目。毕竟,你正在制作一个“框架”,所以你也可以找出有效的方法。
如果PHP代码是整页渲染,或者在单个会话中完成,请转到内部SQL视图以获取页面。如果你要有一个多个会话同时使用的* .php文件,那么只能将数据完全存储在PHP中,并且可以避免数据库往返。
答案 1 :(得分:1)
如果您使用MySQLi
,您可以将结果保留在MySQL
(MYSQLI_USE_RESULT
)中并让PHP
逐个阅读,以避免超载{{1}记忆。
您想要的所有信息都在这里: http://uk1.php.net/manual/en/mysqli.query.php
注意:强>
如果您使用PHP
所有后续通话将返回错误 MYSQLI_USE_RESULT
,除非您致电Commands out of sync
。
答案 2 :(得分:0)
我建议使用你的第一个方法用一个查询来计算(使用MySQL的COUNT
函数,而不是PHP的mysql_num_rows
或类似的)和另一个查询来选择当前需要的行页面给出了每页偏移量和结果的参数。