我目前正在开发一个使用Doctrine作为ORM的Zend Framework项目。分页 - 从数据库获取所有项目然后分页,或者获取项目的“页面”?
我遇到了一个典型的情况,你必须在表格中显示一个项目列表(大约400),当然,我不想一次显示它们。 我以前已经使用过Zend_Paginator(只是一些基本用法),但我总是用来从数据库中获取所有项目,然后对它们进行分页,但现在感觉不太对。
我的问题是:这是更好地得到来自DB 所有项目先“分页”他们,或者得到项目的“页”,因为他们被要求?这会对性能产生更大的影响?
编辑:获得所有项目对性能的影响最大,但显着取决于项目数量。 使用limit时仍然需要总数的最简单的解决方案是SELECT SQL_CALC_FOUND_ROWS [columns] FROM [table],然后选择FOUND_ROWS()作为后续行以获得没有限制的“实数”。 – 2012-01-11 12:35:56
谢谢@米克,但这并没有真正回答我的问题,哪个更好 – jere 2012-01-11 14:00:50