Mysql

MySQL/MariaDB 中未使 用的列會顯著影響性能嗎?

  • May 17, 2021

在 WordPress MySQL/MariaDB 數據庫中有一個表,其中包含一些在我自己使用 WordPress 時從未使用過的列。

我正在談論的確切列是:

comment_status varchar(20)
ping_status varchar(20)
to_ping text
pinged text
comment_count bigint(20)

它們都不是索引的一部分。

我想知道刪除這些列是否會產生顯著的性能差異。

當然,我不能只刪除這些列而不修改 WordPress 核心。我提出這個問題的真正目標是獲得回饋,以了解參與 WordPress 開發是否值得努力,並找到一種替代方法來管理仍在使用這些列的網站的資訊。

未使用的列確實會帶來成本,但很少有人會在具有精心編寫的目標查詢的系統中註意到或關心的成本。如果您對測試性能和以有意義的方式為 WordPress 項目做出貢獻感到好奇,您可能需要考慮執行以下操作:

  1. 對您的 WordPress 數據庫進行可行的備份。例如:
sudo mysqldump wordpress > wordpress.sql

**注意:**這假設您將通過命令行創建備份。如果您更喜歡 GUI,請以您喜歡的方式進行備份。 2. 刪除您認為可以不用的列:

ALTER TABLE wp_posts DROP COLUMN comment_status;
ALTER TABLE wp_posts DROP COLUMN ping_status;
ALTER TABLE wp_posts DROP COLUMN to_ping;
ALTER TABLE wp_posts DROP COLUMN pinged;
ALTER TABLE wp_posts DROP COLUMN comment_count;
  1. 看看接下來幾天會發生什麼。如果 WordPress 對某事不滿意,它不會害羞地告訴世界某事是錯誤的。

那麼,如果沒有什麼不好的事情發生… 4. 開始修改 WordPress API 以不同方式處理這些欄位(如果有的話)並調整數據庫以提高性能。

在像 WordPress 這樣的大型項目上工作可以帶來很大的滿足感,特別是如果您的任何修改被核心項目採用。

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