MySQL中的死結

本文介紹MySQL中的死結,以便在導致網站無法使用、資料庫匯入停滯或其他Adobe Commerce問題時協助識別和解決死結。

受影響的產品和版本

  • Adobe Commerce內部部署2.2.x和2.3.x
  • 雲端基礎結構上的Adobe Commerce 2.2.x和2.3.x

問題

當兩個或多個交易相互保留並請求鎖定時,就會在MySQL中出現死結。 出現死結並不一定表示發生問題,但通常是其他已發生的MySQL或Adobe Commerce問題的徵兆。

應用程式、部署或MySQL記錄檔經常會提及​ 「死結」 ​錯誤,或嘗試取得鎖定時發現錯誤​ 「死結」;請嘗試重新啟動交易。

原因

死結可能有多種原因,但最常見的原因是在同時執行DML/DDL查詢時執行任何互動(網站/程式/cron工作/其他使用者/MySQL維護/MySQL匯入)。

例如,最佳實務是先將您的網站置於維護模式,以避免向資料庫發出SQL請求,進而避免發生MySQL資料庫匯入停滯的情況,這可能會導致鎖死和資料庫匯入停滯不前。

解決方案

  1. 檢查您的應用程式、部署或MySQL記錄檔是否有死結錯誤:

  2. 檢查您的MySQL處理序清單,以使用命令mysql -e 'show full processlist';執行處理序

  3. 如果是在雲端基礎結構上的Adobe Commerce上,請檢查MySQL從屬檔案是否已啟用。 請參閱本文: 部署變數(MYSQL_USE_SLAVE_CONNECTION)

  4. 根據涉及的錯誤,解決方案可能會自行出現,或者您可能需要在需要開啟支援票證時包含有用的記錄資訊。

相關閱讀

NOTE
我們知道,本文仍可能包含業界標準的軟體術語,有些軟體術語可能認為這些術語具有種族主義、性別歧視或壓迫性,並且可能讓讀者感到傷害、創傷或不受歡迎。 Adobe正致力於從我們的程式碼、檔案和使用者體驗中移除這些詞語。
recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a