WordPress終極優化指南–將MySQL索引添加到WordPress wp_options表
隨著使用時間的增長,WP數據庫中的wp_options表會變得越來越臃腫。很多插件會在wp_options表生成臨時數據。
表的膨脹會影響數據庫的性能,然後影響到網站的速度。優化網站過程中優化wp_options表非常重要。
有很多種方法提高性能,但是比較簡單的是給wp_options表添加索引。可以擁有更快的查詢速度。
首先我們需要確認是否已經創建了索引,登陸phpmyadmin然後執行一個SQL命令來查詢。
SHOW INDEX FROM wp_options;
如果執行後顯示的是下圖的結果,則是沒有創建索引。
如果現實的是下圖中,Column_name值為autoload 或類似的索引,則表示已經創建。
wp_options表索引添加教程(WP-CLI版本命令普通用戶不必理會)
首先找出wp_options表通過比較autoload = yes行數和autoload = no行數來向表中添加索引。
autoload = yes行數查詢
SELECT COUNT(CASE WHEN autoload = ‘yes’ THEN 1 END) FROM wp_options;
WP-CLI版本
wp db query “SELECT COUNT(CASE WHEN autoload = ‘yes’ THEN 1 END) FROM $(wp db prefix –allow-root)options;” –allow-root
autoload = no行數查詢
SELECT COUNT(CASE WHEN autoload = ‘no’ THEN 1 END) FROM wp_options;
WP-CLI版本
wp db query “SELECT COUNT(CASE WHEN autoload = ‘no’ THEN 1 END) FROM $(wp db prefix –allow-root)options;” –allow-root
一般是autoload=no數量大於autoload=yes才會去創建索引。
通常如果60-80%的option_name鍵是autoload = no值,這時候就應該創建索引了。
索引創建
MySQL 語法採用這種格式 CREATE INDEX
CREATE INDEX <index-name> ON <table-name>(<column-1>, <column-2>);
wp_options輸入下方命令在表上創建WordPress MySQL索引
CREATE INDEX autoloadindex ON wp_options(autoload, option_name);
創建成功後一般會返回:
MySQL返回的查詢結果為空(即零行)。(查詢花費0.0248秒。)
CREATE INDEX autoloadindex ON wp_options(autoload, option_name)
創建後再使用SHOW INDEX FROM wp_options; 查詢一次即可看到是否創建成功。
WP-CLI版本
wp db query “CREATE INDEX autoloadindex ON $(wp db prefix –allow-root –skip-plugins –skip-themes)options(autoload, option_name);” –allow-root
如何刪除索引?
使用下方命令將從wp_options表中刪除MySQL索引
DROP INDEX autoloadindex ON wp_options
WP-CLI版本
wp db query “DROP INDEX autoloadindex ON $(wp db prefix –allow-root)options” –allow-root