如何从php中的巨大列表中优化存储和获取?

时间:2012-04-29 11:42:58

标签: php javascript mysql database

提前感谢您的帮助,

我有一百万个名字和昵称的清单, 每个名字只有一个昵称。每个名字都有相应的昵称(即使它是相同的)

我通常使用PHP和MySQL在行中存储数据,然后使用select语句来获取。我咨询过你,因为这个方法的量可能没有优化。

将创建一个脚本,每次需要获取大约600个名称的相应昵称,这将在每个用户页面加载时执行。

我有使用PHP和MySQL的经验

我可以用最好的方式构造数据,纯文本,mysql或其他东西。

存储和获取此数据集的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

  1. 分页/延迟加载

    切勿一次装入所有物品。让它们逐步加载。一个真实的例子是Facebook和Twitter。它只会加载一定数量的项目,然后当您到达底部或点击“加载更多”时,它会加载下一个N项或Google,其中每个页面只显示十亿个可能的结果。

  2. 使用JSON

    现在,我仍然看到人们在AJAX请求中返回格式化的HTML - 不要这样做。让您的服务器加载初始页面(具有初始HTML),其余部分通过AJAX加载JSON。有一些客户端模板脚本在JSON数据到达时为您创建HTML。这样可以节省带宽和下载时间。

  3. 使用压缩

    很明显为什么你应该使用压缩。

  4. 仅加载SQL

    中的必填字段

    通常,您加载所有列,因为“它们有一天可能会有用” - 没有。如果要加载一组昵称,请让SQL仅加载昵称。当然,配对总是需要主键字段,因此在这种情况下,有2列。

  5. 看到昵称与此人之间只有一对一的关系,请将其存储在同一张桌子中。它几乎不需要在另一张桌子里。这使您免于JOIN操作。

答案 1 :(得分:0)

正如eggyql所提到的,在你的名字列中添加索引。同时为sql select SELECT name, nickname FROM your_table LIMIT 0, 10

设置限制