0

需要帮助或建议对大量记录进行分页。

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

在 6 万条记录会话值未存储后,我们尝试将所有记录添加到会话中(这不是好的选择)。

需要知道任何其他方法可以帮助对大量数据记录进行分页。

我可以为此使用 sphinx/memcache 吗?

4

3 回答 3

2

那么问题是什么?数据库查询应该是命中数据库。有性能问题吗?可以通过适当的索引进行补救。即使您限制为 10-20 个结果,400k 也不是一个庞大的数据集。

EXPLAIN将帮助您查看您的 sql 服务器在做什么。

如果分页正在刷新页面,您可能希望实现 AJAX 以获得更流畅的用户体验。

您可以同时使用 sphinx 或 memcached。Memcached 可能更容易实现,因为您可以在访问数据库之前先搜索缓存。我认为一些查询/数据库调整可以走很长的路。

于 2012-06-05T18:29:50.810 回答
1

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

于 2012-06-05T18:21:23.477 回答
0

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

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

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

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

于 2012-06-05T18:23:29.067 回答