【发布时间】:2009-07-30 09:11:52
【问题描述】:
如果您的应用程序代码中有一组记录 ID,那么从数据库中读取记录的最佳方法是什么?
$idNumsIWant = {2,4,5,7,9,23,56};
显然循环遍历每个 ID 是不好的,因为您执行 n 个查询:
foreach ($idNumsIWant as $memID) {
$DBinfo = mysql_fetch_assoc(mysql_query("SELECT * FROM members WHERE mem_id = '$memID'"));
echo "{$DBinfo['fname']}\n";
}
那么,也许使用单个查询会更好?
$sqlResult = mysql_query("SELECT * FROM members WHERE mem_id IN (".join(",",$idNumsIWant).")");
while ($DBinfo = mysql_fetch_assoc($sqlResult))
echo "{$DBinfo['fname']}\n";
但是当数组有 30,000 个元素时,这种方法是否可以缩放?
你如何有效地解决这个问题?
【问题讨论】:
标签: php mysql database performance