mysql - 从数据库中选择大量值的最有效方法

标签 mysql sql

我有一个包含大约 2400 个“项目”的数据库表。用户将拥有 2400 个项目集中项目的任意组合。然后需要查找每个项目的详细信息并将其显示给用户。获取所有项目详细信息的最有效方法是什么?我可以想到三种方法:

  • 选择所有 2400 项并在客户端解析所需的详细信息。
  • 使用可能是很长的 SQL 字符串(0-2400 个 ID)的 SELECT 选择特定项目?
  • 一次选择每一项(连接太多)?

我对 SQL 效率一无所知,因此任何指导都会有所帮助。知道这是一个基于 AJAX 的网络应用程序可能会有所帮助。

编辑:平均而言,用户会选择约 150 个项目,很少超过 400-500 个。

最佳答案

最好的方法是在一次查询中从数据库返回你想要的数据:

select i.*
from items i
where i.itemID in (<list of ids>);

MySQL 查询可能非常大(参见 here ),所以我不担心能否传入值。

但是,如果您的用户有很多项目,我建议先将它们存储在数据库中,然后执行join 以获取附加信息。

关于mysql - 从数据库中选择大量值的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21499212/

相关文章:

mysql - MySQL 中的行位置

php - 在三个表的查询中。如何在 SQL 中获取一组团队及其成员

sql - 存储过程中是否需要 "SET NOCOUNT OFF"?

mysql - 在一个表的查询中同时选择和计数

php - 我的php和Mysql程序有问题吗?

php - 将 url 中的变量传递给 PHP 文件

mysql - root 可以导入 python 模块,但用户不能

mysql - 连接子句中的 Rails ActiveRecord 转义变量

sql - 我的 Select SUM 查询返回 null。它应该返回 0

sql - 创建存储过程时列名无效错误