Partitioning

如何拆分 Wordpress 數據庫?

  • May 29, 2014

僅供參考 - 我最初在 Wordpress 開發網站下發布了這個問題:

https://wordpress.stackexchange.com/questions/145861/how-to-split-the-wordpress-database

我有一個用於記錄客戶和膳食資訊的網站。它基於 Wordpress,但有相當多的自定義程式碼。我們為客戶和膳食數據設置了自定義分類法。

我們的問題是數據庫變得非常大,導致站點執行非常緩慢。我想基本上將數據庫的不同年份歸檔到單獨的數據庫中,以便我們仍然可以在需要時參考一些數據,但減少活動年份的數據庫大小。

我已經搜尋了可以執行此操作的存檔工具或外掛,但找不到任何東西(大多數結果都是針對 Wordpress 存檔的,而不是從 Wordpress 數據庫中存檔數據的實際過程)。例如,在我的數據庫中,“postmeta”表目前有 2,656,529 行,“posts”表有 241,725 行,“term_relationships”表有 1,164,119 行。數據庫的整個大小為 356.7 MB。

我們為前端管理員創建了自定義報告,以便能夠生成膳食和客戶報告,但如果您選擇的日期範圍超過 1 個月,它們現在會中斷。

僅供參考 - 我已經執行了 WP Optimize 外掛,並且已經刪除了所有後期修訂(開始時很少)。我需要做的實際上是將數據庫的這些表拆分,以便為 2012 年記錄的所有膳食與 2013 年分開,而 2013 年需要與 2014 年分開。

有沒有人對我們可以做些什麼來控制數據庫有任何建議?

postmeta 表中有近 300 萬行,posts 表中有近 250,000 行,聽起來您的 WordPress 早已超越。

WordPress 中的自定義文章類型和自定義分類法是事後開發的,因此實施效率不會那麼高。(很多 WordPress 效率不高,但這完全是另一回事。)

與其建構一個“hack”來解決自定義文章類型和自定義分類的 WordPress“hack”,我建議將客戶和膳食數據從文章和 postmeta 表中移出並將它們移到自定義表中. 您仍然可以使用 WordPress 作為網站的 CMS(甚至使用它們的數據庫類和助手),但是通過創建自己的表和 PHP 程式碼來管理這些資訊而不是試圖讓它工作,您將獲得很多效率在不是為保存該數據而設計的表中…

想到的一個例子是 GigPress 外掛,它創建自己的表來儲存事件/藝術家/場地資訊,而不是文章和 postmeta 表。

我在嘗試修改或分區原生 WordPress 表時看到的最大問題是,每當更新 WordPress 時,它可能/會破壞您的更改。您不想讓自己處於不得不花費大量時間來更新到更新版本的 WordPress 的位置。

引用自:https://dba.stackexchange.com/questions/66204