Mysql

將 5 個表連接在一起或 5 個單獨的查詢連接是否更快?

  • July 8, 2020

我很困惑,我的應用程序中已經有 5 個表說 a、b、c、d、e 並且彼此之間存在關係,例如 a.b_id 是 b 的主鍵並且鏈繼續。

現在我的問題是哪種方法會給我更好的性能/更快的結果?5 個查詢或 5 個表的查詢連接?

謝謝你。

這樣看……每個都有很多成本SELECT

  • 客戶端和伺服器之間的往返
  • 分配一個執行緒來處理查詢
  • 解析 SQL
  • 優化它
  • 執行它(肉!)
  • 發回結果

在一些實驗中,我看到“成本”佔工作的 90%。5 次查詢花費了將近 5 倍的成本。

這取決於! 在:

  • 你的瓶頸是什麼

    • 數據庫速度/計算能力
    • 傳輸速度/頻寬
    • 應用計算能力
    • 應用程序主記憶體
  • 存在哪些索引

    • 是他們支持的連接嗎
    • 是他們支持的選擇
  • 數據是如何結構化的以及應用程序需要哪些數據

    • 無論如何您都需要所有數據嗎,或者連接是否帶有刪除所有表中 90% 數據的條件
  • 您可以並行進行選擇還是需要按順序執行

  • 您可以重新使用選擇中的數據來替換多個連接查詢嗎

引用自:https://dba.stackexchange.com/questions/270389