我有一个包含大约 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/