簡體   English   中英

mysql 查詢執行時間問題

[英]mysql issue with query execution time

我的 Magento 網站上有一個大問題。

如果我們重新啟動 MySQL 並立即在 SQL 上運行查詢(例如從刪除等中進行更新),一切都會完美運行,並且每個查詢都會非常快地執行(< 0.02 秒)。

如果說星期一我重新啟動 MySQL 並做查詢讓說星期三晚上。 假設我從 go 到 PHPMyAdmin 並從 select 中運行查詢刪除...如果完成,查詢將需要 1-2 分鍾。 通常,在此查詢運行期間將無法訪問該站點。 該網站將加載。 有時查詢會在 2 分鍾后完成……或者有時 MySQL 會重新啟動,查詢不會完成。

當它重新啟動時,我得到這個 email:

數據庫查詢失控 我們的系統在您的數據庫中檢測到鎖定條件。 多個查詢運行時間過長。 查詢被終止以保持您網站的可用性。 下面是用於分析的正在運行的查詢的進程列表。

但請記住……如果我在手動重新啟動 MySQL 之后執行此操作,將在 0.02 秒內執行完全相同的查詢。

我知道這是 MySQL 中的配置。

我認為這與數據庫(存儲)引擎有關。 MySQL 為不同的用途提供不同的存儲引擎。

例如:InnoDB:1)表壓縮(讀/寫) 2)ACID 事務 3)行級鎖定 - 鎖定行直到運行事務完成 4)外鍵約束 5)自動崩潰恢復

MyISAM:1)表級鎖定 - 鎖定表直到運行事務完成 2)快速到 select COUNT(*)s(不使用 WHERE、GROUP BY 或 JOIN 時)3)全文索引(更新:在 InnoDB 中支持MySQL 5.6) 4) 更小的磁盤占用空間 5) 非常高的表壓縮(只讀)

最后,MyISAM 的讀取速度(選擇)更快,InnoDB 的寫入速度(插入/更新)更快。

請使用適當的存儲引擎。 希望這能解決您的問題。

更多詳情請參考官方文檔。https://dev.mysql.com/doc/refman/8.0/en/storage-engines.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM