【发布时间】:2017-07-25 15:51:14
【问题描述】:
我是 mySQL 和 PHP 的新手,遇到了性能问题。 我有一个具有不同唯一 ID 的数据库,我想从 5000 多行中提取几行(从数组中)。到目前为止我想出的最佳解决方案是使用:
SELECT * FROM `table` WHERE id IN ($idArray);
有没有更有效的方法来做到这一点? 'table' 中的 'id' 是一个唯一的字符串。
【问题讨论】:
-
为什么是 ids 字符串?
-
如果 ids 是 唯一的 - 因为它们在数据库中有唯一的索引(
PRIMARY或UNIQUE),那么,只有 5000 条记录,那应该是快到 s --- 铲子! -
这将达到尽可能高效,只需确保您在
id字段上有一个索引。 -
像这样将变量传递给您的查询会使您容易受到SQL Injection的攻击
-
ID 是 Facebook 用户 ID,它们是大约 15 个字符的数字字符串,可以给予或接受。我将数据库用作排行榜,更具体地说,我想提取所有用户朋友(及其 id)的分数(每个用户约 4 个列)。在这一点上,我只测试了来自 5000 名总用户的约 10 人,是自行生成的,但实际上它可能是超过 50k 总用户中的数百人。这仍然有效吗?如果我还没有偏离主题,你认为有更好的方法来做我想做的事吗?谢谢。
标签: php mysql performance