考慮由main_table_id鏈接兩個表:MySQL:哪一個在1:N關係中更快?加入或兩個查詢?
http://www.zigdigital.com.br/download/descartar/Diagrama1121220131414.jpg
我可以獲取像數據:
SELECT `main_table`.* , `second_table`.*
FROM `main_table`
JOIN `second_table`
ON (`main_table`.`main_table_id` = `second_table`.`main_table_id`)
WHERE `main_table`.`main_table_id` = ?
AND `second_table`.`main_table_id` ?
或者,我可以做到用兩個查詢同樣的事情:
SELECT *
FROM `main_table`
WHERE `main_table_id` = ?
第二個查詢:
SELECT *
FROM `second_table`
WHERE `main_table_id` = ?
對我來說,唯一的區別是我要在第一種情況下一次獲取數據,在第二種情況下要在兩個不同的數組中獲取數據。
但是我的疑問是:在服務器性能中,哪一個是處理這種情況的最佳方式?
簡短的答案,這取決於。 http://stackoverflow.com/questions/1067016/join-queries-vs-multiple-queries – Quantastical
它*確實*取決於,但是 - 一個粗略的近似值 - 一次到數據庫的行程將會比2短。 – Strawberry