我有一系列数据:
$ary = new array(
array("domain"=>"domain1", "username"=>"username1"),
array("domain"=>"domain1", "username"=>"username2"),
array("domain"=>"domain2", "username"=>"username3"),
);
我需要使用此数据从具有以下表结构的MySql数据库中检索数据(为了说明而简化)。
domain_table
domain_id
domain
user_table
user_id
user
stuff_table
stuff_id
... details
link_table
link_id
user_id -- The user we are searching for connections on
connected_user_id -- from the array above
stuff_id
我需要在stuff表中获取一个user_id的每一行,该user_id也有一个来自数组的connected_user_id。
我正在使用PDO
$ ary中可能有数百个(可能是数千个)条目。
我可以通过循环遍历数组并添加大量连接来生成一个非常大的查询。 我可以为$ ary中的每一行执行单个查询。 我可以使用$ ary创建一个临时表并使用连接。 还有别的吗?
最好的方法是什么 - 最快的处理器时间而不是过于神秘 - 实现这一目标?
答案 0 :(得分:0)
答案 1 :(得分:0)
如果您的整个数据集都很大并且不适合内存,则不应该选择加入。
顺序选择。从link_table中选择行,从PHP中的结果中收集user_id。然后使用“where user_id in(?)”从user_table中选择行。处理PHP中的结果分组。
即使有大表,按键选择也会很快。有2-5选择而不是1选择不是问题。
当数据库适合RAM时,连接速度很快。然后出现问题。