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

标签 php javascript mysql database

预先感谢您的帮助,

我有一百万个名字和昵称的列表, 每个名字只有一个昵称。每个名字都有其对应的昵称(即使相同)

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

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

我有使用 PHP 和 MySQL 的经验

我可以用任何最好的方式构建数据,纯文本、mysql 或其他方式。

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

最佳答案

  1. 分页/延迟加载

    切勿一次加载所有项目。让它们增量加载。现实生活中的例子是 Facebook 和 Twitter。它只加载一定数量的项目,然后当您到达底部或单击“加载更多”时,它会加载接下来的 N 个项目或 Google,每页仅显示十亿个可能结果中的 N 个项目。

  2. 使用 JSON

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

  3. 使用压缩

    为什么应该使用压缩是非常明显的。

  4. 仅加载 SQL 中所需的字段

    很多时候,您加载所有列是因为“它们有一天可能会有用” - 不。如果要加载一组昵称,请让 SQL 仅加载昵称。当然,配对始终需要主键字段,因此在本例中为 2 列。

并且看到昵称和人之间只是一对一的关系,将其存储在同一个表中。它几乎不需要放在另一个表中。这使您免于 JOIN 操作。

关于php - 如何优化 PHP 中巨大列表的存储和获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10371839/

相关文章:

javascript - 图表 js 中带有注释插件和类别轴的垂直线?

javascript - 如何使用 javascript 在 Titanium 中调用 WebService

mysql - 在 mysql 标签系统中显示最佳匹配

python - MySQL 实用程序与 MySQL 8 服务器

php - 自定义样式的数字增量

php - LDAP - 列出组

php - Drupal 8 数据库插入中的 fatal error : Call to undefined method,

php - 尝试删除所有行或具有相同代码的一行时出现php语法错误

javascript - Twilio 视频——无视频和静音方法

javascript - 间隔一段时间后用来自 mysql 的数据重新加载 PHP 页面