【发布时间】:2012-07-13 23:37:29
【问题描述】:
我在我的网站上存储了一些历史信息,以供用户将来检索。因此,当他们访问某些页面时,它会记录他们访问的页面、时间,然后将其存储在他们的用户 ID 下以供将来添加/检索。
所以我最初的计划是将所有数据存储在一个数组中,然后在每次检索时对其进行序列化/反序列化,然后将其存储回数据库的 TEXT 字段中。问题是:如果用户建立(例如)10k 个页面的历史记录,我不知道这对大量数据的效率会有多高。
编辑:所以我想知道最有效的方法是什么?我还考虑在数据库中为每个历史记录插入一个新行,但这会成为一个用于从中选择内容的大型数据库。
问题是什么是更快/高效、数据库中的大量行或大量序列化数组?显然欢迎任何其他更好的解决方案。我最终会改用 Python,但现在必须在 PHP 中完成。
【问题讨论】:
-
您需要一些关于页数和时间的上限。否则,使用像 SVN 这样的 summat 并即时生成 id。
-
我猜你从来没有打算在用户的历史页面中显示 10k 的数据。显示 20 行历史记录,并放置“更多”链接以向页面添加更多数据。对于 Facebook 的时间线配置文件,它会在您向下滚动页面时添加更多数据,而不是一次添加所有数据。
标签: php mysql database arrays serialization