WordPress 的機制是主要使用 wp_posts 表來存儲所有數據,包括日誌,頁面,附件,導航菜單等等,所以 WordPress 使用了一定時間之後,數據量一大還是有點慢,除了對 WordPress 進行全方面的優化之外,我們還可以對數據表進行減肥和優化,來提高 WordPress 的速度。
1. 刪除所有日誌修訂
日誌修訂是所有速度慢的罪惡之源,幾百篇日誌會有幾千條日誌修訂的記錄,所以用力刪除把,提速效果非常明顯:
DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision'
2. 關閉日誌修訂
日誌修訂不是好東西,你可以關閉它或者限制數據庫存的修訂個數:
關閉日誌修訂:
define('WP_POST_REVISIONS', false);
限制日誌修訂爲最新的3個:
define('WP_POST_REVISIONS', 3);
3. 優化 wp_posts 表
對 MySQL 數據記錄進行插入、更新或刪除時,會佔有不同大小的空間,記錄就會變成碎片,且留下空閒的空間。就像具有碎片的磁盤,會降低性能,需要整理,因此要優化。
OPTIMIZE TABLE wp_posts;
4. 刪除所有垃圾留言
不用到後臺一條一條刪除,只需下面一條 MySQL 即可:
DELETE FROM wp_comments WHERE comment_approved != '1';
5. 刪除沒有的標籤
不再使用的標籤,WordPress 是不會自動刪除的,需要人工清理下:
DELETE a,b,c FROM wp_terms AS a LEFT JOIN wp_term_taxonomy AS c ON a.term_id = c.term_id LEFT JOIN wp_term_relationships AS b ON b.term_taxonomy_id = c.term_taxonomy_id WHERE ( c.taxonomy = 'post_tag' AND c.count = 0 );
6. 刪除沒用的 postmeta 記錄
可能日誌的記錄已經刪除了,但是日誌擴展表 postmeta 裏面的數據還沒有刪除,也人工清理下吧:
DELETE pm FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL