分页巨大的数据记录

时间:2012-06-05 18:11:29

标签: php database memcached sphinx

需要大量记录的分页帮助或建议。

我有400,000条记录,每次进行分页时都会进行分页,并根据限制设置获取设置记录。

我们尝试在没有存储60,000条记录会话值之后将所有记录添加到会话中(这不是很好的选项)。

需要知道任何其他方法可以帮助分页巨大的数据记录。

我可以使用sphinx / memcache吗?

3 个答案:

答案 0 :(得分:2)

那么问题是什么?数据库查询应该是命中数据库。有性能问题吗?这可以用适当的索引来弥补。即使你限制在10到20个结果,400k确实不是一个庞大的数据集。

EXPLAIN将帮助您查看您的sql server正在执行的操作。

如果分页正在刷新页面,你可能想要为更加无缝的ux实现AJAX。

您可以同时使用sphinx或memcached。 Memcached可以更容易实现beucase你可以在点击DB之前先搜索缓存。我认为一些查询/数据库调优可以有很长的路要走。

答案 1 :(得分:1)

您可以使用AJAX检索记录,例如一次100条记录

答案 2 :(得分:0)

你可以使用内存缓存在内存中执行此操作,但这可能会占用大量内存。

如果您的数据集具有递增的键,使用时间或主键auto_increment字段,您可以执行如下所示的查询。

SELECT fieldlists FROM tablename WHERE key > $lastusedkey limit $limit

这可以解决限制可能导致进行分页的应用程序的瓶颈,并且它不需要您将整个数据库放入内存。