哪个更快?
我将SQL结果存储在一个数组中 - 这意味着1000个或更多ID。然后我使用in_array()函数30次来查找MyID在数据库中。
我检查MyID是否在数据库中并重复30次。
48 records (MyID)
Array count: 1704 (ID) (Table size: 100 000)
Delta time:
Method 1: 0.0075759887695312
Method 2: 0.0038831233978271
答案 0 :(得分:0)
我肯定会说,一次性获取阵列中的所有ID将比查询MySQL服务器30次快得多。
答案 1 :(得分:0)
您提出的解决方案似乎都不正确。你应该查看MySQL的IN clause。有了这个,您可以在WHERE
中查询单个查询中的多个值,如下所示:
SELECT something FROM table WHERE id IN(1, 4, 5, ...)
答案 2 :(得分:0)
使用(key,value)关联数组(实际上所有数组在PHP中都是关联的,但这不是重点)。将数组的键设置为ID,每个值(例如)为1。
$ids = array();
For all ID from database {
$ids[ ID ] = 1;
}
测试ID是否在数组中
if (isset($ids[ ID ])) {
// yes it is
}
使用数组这种方式非常快,因为内部密钥存储为树 - the search complexity is ~ O(1)