回答

收藏

嵌套查询比联接查询快吗?

技术问答 技术问答 291 人阅读 | 0 人回复 | 2023-09-12

每个表数据中有1万多个记录。列出此数据时,查询速度会更快。嵌套查询比联接查询快吗?3 }* \/ R, ^( A; M
嵌套查询:8 k2 ]3 n9 m4 Z
$query = $baglanti->prepare("Select * from table_1");$query->execute();if($query->rowCount() > 0){    while($query_data=$query->fetch(PDO::FETCH_ASSOC)){          $query_2 = $baglanti->prepare("Select * from table_2 where table_1_id = :id");        $query_2->bindParam(":id",$query_data["id"],PDO:ARAM_INT);        $query_2->execute();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;if($query_2->rowCount() > 0){            while($query_2_data=$query_2->fetch(PDO::FETCH_ASSOC)){                  $query_3 = $baglanti->prepare("Select * from table_3 where table_2_id = :id");                $query_3->bindParam(":id",$query_2_data["id"],PDO:ARAM_INT);                $query_3->execute();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;if($query_3->rowCount() > 0)()()()()()()()()()()()()()()()()()()())())()())()())()())())()))()))()))())())())())())())())())())())()()))()())())()())())())()))()))()))())())())())())())()()()()())()())()())())())()()())())()))())())())())())()())())())())()())())())()()()())()()()()())())())())())()))())()()()()()))())()))()))()()())())())))()()()())())()()())())))()))))()))()())())()()()()()()()()())())()()())()()()))())))()))))())()()()())()))()()()()()()()()()()()()()())())())())()()()()()()()()()()))()())())))))())))())))()))()()))()()()()()()()()()()()()()()()()()()()()()()()()()())))()()()()())()()()()()()()()()while($query_3_data=$query_3->fetch(PDO::FETCH_ASSOC))                                                            table_                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        table_ 55                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ...                                                                  内部联接查询:
" v/ S: D0 x4 q& Z$query = $baglanti->prepare("Select * from table_1    INNER join table_2    on table_1.id=table_2.table_1_id    INNER join table_3    on table_2.id=table_3.table_2_id    INNER join table_4    on table_3.id=table_4.table_3_id    INNER join table_5    on table_4.id=table_5.table_4_id    ...    ");$query->execute();if($query->rowCount() > 0){    while($query_data=$query->fetch(PDO::FETCH_ASSOC)){  }}结果哪个更快?(我已经索引了所有的表格)$ \, o: y7 g' Y& y
                                                               
- D& ?) _5 F# h- S) ^5 |% ?    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则