MySQL儲存引擎 – 如何將MyISAM轉換為InnoDB

MySQL儲存引擎 – 如何將MyISAM轉換為InnoDB

大型WordPress網站速度變慢的最大原因之一是它們的資料庫尚未優化。許多較舊的站點仍在其資料庫中使用MyISAM儲存引擎。近年來,InnoDB表現得更好,更可靠。在MyISAM上使用InnoDB的一個重要原因是缺乏完整的表級鎖定。這使您的查詢處理速度更快。

InnoDB與MyISAM

以下是InnoDB和MyISAM之間的一些主要區別:

    • InnoDB具有行級鎖定。MyISAM只有完整的表級鎖定。
    • InnoDB具有所謂的參照完整性,它涉及支援外來鍵(RDBMS) 和關係約束,而MyISAM沒有 (DMBS)。
    • InnoDB支援事務,這意味著您可以提交和回滾。MyISAM沒有。
    • InnoDB更可靠,因為它使用事務日誌進行自動恢復。MyISAM沒有。

您使用的是MyISAM還是InnoDB?

如果您在一個相當新的WordPress站點上執行,您很可能已經在使用InnoDB MySQL儲存引擎。但是對於較舊的WordPress網站,您可能需要快速檢查一下。一些站點甚至可能混合並匹配了MyISAM和InnoDB表,您可以通過將它們全部轉換來看到改進。請按照以下這些簡單的步驟進行檢查。

第1步

登入到phpMyAdmin並單擊進入您的mySQL資料庫。

第2步

快速掃描或對“Type”列進行排序,您就可以看到您的表正在使用哪些儲存引擎型別。在下面的這個示例中,您可以看到其中兩個表仍在使用MyISAM。

查詢MyISAM表

查詢MyISAM表

或者,您可以執行查詢以檢視是否存在任何myISAM表。將“database”替換為您的資料庫名稱。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT TABLE_NAME,
ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database' and ENGINE = 'myISAM'
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'database' and ENGINE = 'myISAM'
SELECT TABLE_NAME,
ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database' and ENGINE = 'myISAM'

使用phpMyAdmin將MyISAM轉換為InnoDB

您可以相當輕鬆地將MyISAM轉換為InnoDB。下面的這個例子是使用wp_comments表格。只需執行ALTER命令即可將其轉換為InnoDB儲存引擎。注意:我們始終建議在對MySQL資料庫執行任何操作之前對其進行備份。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ALTER TABLE wp_comments ENGINE=InnoDB;
ALTER TABLE wp_comments ENGINE=InnoDB;
ALTER TABLE wp_comments ENGINE=InnoDB;

確保您執行的是MySQL 5.6.4或更高版本,否則,您可能會遇到InnoDB尚不支援全文索引的問題。

或者,您也可以使用phpMyAdmin手動轉換它們。只需單擊myISAM表,單擊進入“Operations”選項卡,然後更改儲存引擎。

將MyISAM轉換為InnoDB

將MyISAM轉換為InnoDB

使用WP-CLI將MyISAM轉換為InnoDB

WP-CLI是一個命令列工具,供開發人員管理WordPress安裝的常見任務(並不常見)。檢視這篇關於如何使用WP-CLI將MyISAM轉換為InnoDB的文章。

評論留言