Mysql
將 5 個表連接在一起或 5 個單獨的查詢連接是否更快?
我很困惑,我的應用程序中已經有 5 個表說 a、b、c、d、e 並且彼此之間存在關係,例如 a.b_id 是 b 的主鍵並且鏈繼續。
現在我的問題是哪種方法會給我更好的性能/更快的結果?5 個查詢或 5 個表的查詢連接?
謝謝你。
這樣看……每個都有很多成本
SELECT
:
- 客戶端和伺服器之間的往返
- 分配一個執行緒來處理查詢
- 解析 SQL
- 優化它
- 執行它(肉!)
- 發回結果
在一些實驗中,我看到“成本”佔工作的 90%。5 次查詢花費了將近 5 倍的成本。
這取決於! 在:
你的瓶頸是什麼
- 數據庫速度/計算能力
- 傳輸速度/頻寬
- 應用計算能力
- 應用程序主記憶體
存在哪些索引
- 是他們支持的連接嗎
- 是他們支持的選擇
數據是如何結構化的以及應用程序需要哪些數據
- 無論如何您都需要所有數據嗎,或者連接是否帶有刪除所有表中 90% 數據的條件
您可以並行進行選擇還是需要按順序執行
您可以重新使用選擇中的數據來替換多個連接查詢嗎