Mysql-Cluster

Mysql Cluster AQL(Push-Down Join)可以和分錶同時觸發嗎?

  • August 14, 2013

從 jonas slide中,我知道“Push-Down Join”的特性可以讓 join 快 70 倍。最重要的因素是消除 API 節點和數據節點之間的往返。如果所有數據都在同一個節點中,則無需進行節點間通信。但是如果某個表被分區到一些數據節點組,AQL 是如何消除數據傳送的呢?下推可以在分片場景中工作嗎?

下推基本上意味著工作的某些部分被“下推”到數據節點。所以性能提升是因為:

  • 數據節點可以比 SQL 節點更有效地過濾和處理數據。他們“更了解”數據的物理細節
  • 我們節省了 SQL 節點 - 數據節點流量。由於 MySQL Cluster 設計,這兩個節點之間的延遲相對較高

數據節點間的延遲要低得多。所以數據傳送對性能沒有這樣的影響。並且所有表(除了一些絕對極端情況)在數據節點之間進行分片。對於任何數據提取,數據節點必須找到哪個節點擁有所需行的活動部分。

這種延遲仍然不容忽視。可以發現,為了獲得最佳性能,建議使用Dolphin Interconnect。但:

  • 數據節點間延遲更低
  • 對於 SQL 節點的一次數據提取,必須在數據節點之間傳遞多個通信數據包。並且當過濾由數據節點完成時,一個處理的行在數據節點之間需要更少的數據包。

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