分割資料庫解決方案概觀
Adobe Commerce提供數個擴充性優勢,包括能夠針對Commerce應用程式的不同功能區域使用三個不同的主資料庫。
結帳、訂購和產品資料都可以使用個別的master資料庫,您可以選擇複製這些資料庫。 此分離會根據您的需求,獨立調整網站結帳、訂單管理活動、網站瀏覽和銷售活動的負載。 這些變更在如何擴充資料庫層級方面提供了相當大的彈性。
ResourceConnections
類別提供與Commerce應用程式的統一MySQL資料庫連線。 針對主要資料庫的查詢,我們實作命令查詢職責劃分(CQRS)資料庫模式。 此模式會處理將讀取和寫入查詢路由到適當資料庫的邏輯。 開發人員不需要知道使用的是哪個設定,而且沒有單獨的讀取和寫入資料庫連線。
如果您設定可選的資料庫複製,您會獲得下列優點:
- 資料備份
- 在不影響master資料庫的情況下進行資料分析
- 擴充性
MySQL資料庫會以非同步方式復寫,這表示從屬端不需要永久連線,即可接收主端的更新。
下圖說明此功能的運作方式。
在Magento Open Source中,僅使用一個master資料庫。
Adobe Commerce使用三個主要資料庫和可供設定的從屬資料庫數量進行複製。 Adobe Commerce提供單一介面用於資料庫連線,因此可加快效能並提升擴充能力。
設定選項
因為分割資料庫效能解決方案的設計方式,您的自訂程式碼和已安裝的元件 無法 執行下列任一動作:
- 直接寫入資料庫(您必須改用Adobe Commerce資料庫介面)
- 使用影響銷售或報價資料庫的JOIN
- 在簽出、銷售或主要資料庫中使用資料表的外部索引鍵
- 要求元件開發人員更新其元件。
- 依原樣_使用元件,但不使用_分割資料庫解決方案。
- 移除元件,以便使用分割資料庫解決方案。
這也表示您可以:
-
在將Commerce投入生產之前 設定分割資料庫解決方案。
Adobe建議您在安裝Commerce軟體後,儘快設定分割資料庫。
-
手動設定分割資料庫解決方案。
如果您已安裝元件,或Commerce已在生產環境中,則必須執行此工作。 (不要 更新生產系統;在開發系統中進行更新,並在您測試變更之後同步化變更。)
note warning WARNING 您必須手動備份另外兩個資料庫執行處理。 Commerce僅備份主要資料庫執行個體。 magento setup:backup --db
命令和Admin選項不會備份其他表格。
必要條件
分割資料庫需要您在任一主機上設定三個MySQL master資料庫(全部三個Commerce伺服器上,每個資料庫在個別伺服器上,依此類推)。 這些是 master 資料庫,使用方式如下:
- 一個用於簽出表格的主資料庫
- 一個銷售資料表(也稱為 Order Management System 或 OMS 資料表)的主資料庫
- 一個用於Commerce 2應用程式表格的其餘主要資料庫
此外,您可以選擇設定任何數目的 從屬 資料庫,做為負載平衡器和備份。
本指南僅討論如何設定主資料庫。 我們提供範例組態和參考,供您視需要設定從屬資料庫。
在本指南中,三個主要資料庫命名為:
magento_quote
magento_sales
magento
(您可以隨意命名資料庫。)