使用 phpMyAdmin 或 WordPress 自帶修復&優化 MySQL 工具,為網站進行數據庫最佳化時(Optimize table),都會出現"Table does not support optimize, doing recreate+..."的提示信息。這是因 InnoDB 存儲引擎不支持 Optimize table 只支持 Database repair 數據優化的操作。
其實!幾年前已經知道有這個問題的存在,鑑於網站運行一直平穩,沒有發生重大故障,所以就將這個問題擱置不理,直到上月轉移數據到新的伺服器,想了一想,還是得著手解決這個問題才可。
以下是使用 WordPress 的數據庫優化工具的提示信息:
wp_term_relationships 資料表沒有問題。
資料表 wp_term_relationships 已完成最佳化。wp_termmeta 資料表沒有問題。
無法最佳化資料表 wp_termmeta。錯誤: Table does not support optimize, doing recreate + analyze instead
以下是使用 phpMyAdmin 的數據庫最佳化功能的提示信息:
Optimize note: Table does not support optimize, doing recreate + ...
N年前 MySQL 一般預設是 MyISAM 存儲引擎,但隨著日子流逝,現在人們更加嚮往使用 InnoDB 存儲引擎,因此現在大部份租用的虛擬空間或雲空間,都默認支持 InnoDB 存儲引擎。你可以瀏覽支援 phpMyAdmin 或 MariaDB 主機上的 MySQL 的資料庫管理工具,查看是否已安裝了 MyISAM 和 InnoDB 存儲引擎。
操作步驟:來到 phpMyAdmin 的主頁按「引擎」或「更多」按鈕。
坊間對於 MyISAM 與 InnoDB 儲存引擎那一個會好一些,兩者都各有特色。
InnoDB具有行級鎖定。MyISAM只有完整的表級鎖定。
InnoDB具有所謂的參照完整性,它涉及支持外鍵(RDBMS) 和關系約束,而MyISAM沒有 (DMBS)。
InnoDB支持事務,這意味著您可以提交和回滾。
InnoDB更可靠,因為它使用事務日誌進行自動恢覆。
------
MyISAM檔案格式比較簡單,處理速度比較快。
MyISAM在表有讀取查詢的同時,支持往表中插入新紀錄。
MyISAM支持BLOB和TEXT的前500個字符索引,支持全文索引。
MyISAM支持延遲更新索引,極大地提升了寫入性能。
MyISAM對於不會進行修改的表,支持壓縮表,極大地減少了磁碟空間的佔用。
------
MyISAM 管理非事務表。它提供高速存儲和檢索,以及全文搜索能力。如果應用中需要執行大量的SELECT查詢,那麽MyISAM是更好的選擇。InnoDB 用於事務處理應用程序,具有眾多特性,包括ACID事務支持。如果應用中需要執行大量的INSERT或UPDATE操作,則應該使用InnoDB,這樣可以提高多用戶並發操作的性能。
MySQL 數據庫管理工具,將頁面捲到最底下,雖然看到 MySQL 預設的資料庫儲存引擎是 InnoDB,不過整個 Insoler 資料庫,看到 WP_ 數據表的類型欄位,混合了 MyISAM 與 InnoDB。
phpMyAdmin 或 MariaDB 主機上修改表存儲引擎為 InnoDB。
若想為 MyISAM 轉換為 InnoDB 或將 InnoDB 修改為 MyISAM 存儲引擎,請依照以下步驟做。
提醒:操作前!請先備份與匯出完整的 MySQL 資料庫。(儲存文件為 .sql 或 .zip)
1. 登入 phpMyAdmin 數據庫管理頁,然後,點擊需要轉換的數據表名稱。
2. 再點擊上方的「操作」或「更多」按鈕,頁面拉到下方的「資料表選項」格,請按「儲存引擎」的欄位,在此可以更改存儲引擎的類型,然後按「執行」儲存操作。
phpMyAdmin 的 Mysql 更改預設引擎為 MyISAM 或 InnoDB 的方法:
在配置檔案 my.ini 中的 [mysqld] 下面加入
default-storage-engine = MyISAM
在配置檔案 my.ini中的 [mysqld] 下面加入
default-storage-engine=InnoDB
你也可以安裝「WP-Optimize」外掛,手動一鍵轉換。
外掛地址:WP-Optimize
提外話!在GG大神尋找相關資料,有一篇文章說及"utf8mb4_general_ci"編碼,這個編碼格式之所以這麽多程序選用,可以讓網站上的所有的文字都支援最新的 Unicode 編碼,也可以使用 Unicode 的圖形字元以及表情符號,例如:😁😂🌸🍏
這一篇文章寫得不錯,有時間的你可以一閱。
MySQL資料庫從MyISAM更換成InnoDB儲存引擎,以及utf8mb4編碼系統。