WordPress 資料庫優化 wp_options 表建立索引

·

wp_options

Photo by Jeremy Thomas on Unsplash

大型的 WordPress 網站,資料庫優化是一個重要工作,經過一段時間後,數據庫中的 wp_options 資料表會變得越來越臃腫,不但會影響網站速度,間接的在 WordPress 控制台操作時也會覺得很慢。

wp_options 資料表,主要是存放 WordPress 系統選項、外掛和主題配置文件;如果您喜歡測試外掛或主題,又沒有正確的方式刪除外掛,時間久了,wp_options 資料表臃腫肥大是必然的。

內容目錄:

  • wp_options 表建立索引
  • autoload 結構建立索引

因為,很多外掛會在 wp_options 表生成臨時數據文件,當移除外掛後,這些資料表文件還是存在資料庫中。

膨脹肥大的資料表會影響數據庫的性能,然後間接影響到網站的速度,所以有必要優化 wp_options 資料表。

資料庫有很多種方法提高性能:

  • 使用 Redis 快取方式
  • 減少安裝沒必要的外掛
  • wp_options 表建立索引
  • 調整資料庫欄位結構長度

wp_options 表建立索引

這裡介紹 wp_options 表建立索引,可以有更快的查詢速度。

我們利用 phpMyadmin MySQL 的資料庫管理工具,執行 SQL 命令來建立。

修改資料庫前,請備份資料庫,很重要 !!

首先我們需要確認 wp_options 表是否已經創建了索引,執行一個 SQL 命令來查詢:

SHOW INDEX FROM wp_options;
WordPress MySQL Optimization

執行後顯示的是下圖的結果,沒有 autoload 列,則是沒有創建索引。

WordPress MySQL Optimization

autoload 結構建立索引

wp_options 輸入下方命令在表上創建 autoload 索引

CREATE INDEX autoload ON me_options(autoload, option_name);
WordPress MySQL Optimization

創建成功後回應:

MySQL 回傳空的查詢結果 (即零資料列)。(查詢花費 0.0397 秒。)
CREATE INDEX autoloadindex ON wp_options(autoload, option_name)

WordPress MySQL Optimization

然後我們再查詢一次資料庫,查詢 autoload 索引是否創建成功

SHOW INDEX FROM wp_options;

如下圖所示,已經在 wp_options 資料表上創建了 autoload 索引

WordPress MySQL Optimization

其他幾個常用的 SQL 命令:

wp_options 表中刪除 MySQL 索引

DROP INDEX autoload ON wp_options

autoload = yes 行數查詢

SELECT COUNT(CASE WHEN autoload = 'yes' THEN 1 END) FROM wp_options;

autoload = no 行數查詢

SELECT COUNT(CASE WHEN autoload = 'no' THEN 1 END) FROM wp_options;

使用 SSH 登入主機的作法,其 SQL 命令也是一樣,進入你的網站所指定的資料表:

mysql -uroot -p example_com  # 使用 root 帳號,登入 example_com 資料庫
Enter password:  # 使用 root 密碼登入

結語:

  • WordPress 資料庫優化中,使用一個高值量的主機是必要的元素,選擇一台有 SSD 或 NVMe 硬碟空間的主機,會有很大的幫助。
  • 盡可能的將 PHP 升級到 7.0+ 以上。
  • 不要用正式的網站,來測試外掛或主題佈景。
  • 刪除外掛後,記得在資料庫中清除殘留的資料表。

還有其他一些有用的優化方式,或是以上的方法不適合您,請在下面發表評論告訴我。

參考文件:

Slow WP Admin / Uncached Pageloads Slow

hosted by kinsta

Comments

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Hey, 想嘗試 Kinsta 主機嗎?

18748

Kinsta 高效能主機

wPowered Starter 方案

馬上訂購

18749
Your Mastodon Instance