Mysql

向大型 MySQL 表添加保留欄位是個好主意嗎?

  • February 6, 2015

您可能知道向具有數百萬條記錄的 MySQL 表添加新列是困難的,在某些情況下是不可能的。

為每個表(例如元)添加一個文本列以在將來避免一些頭痛是個好主意嗎?當然,在大多數情況下它們是空的。

這些數據可以儲存為 JSON。我知道這個欄位不容易訪問,但它可以避免另一個加入,這對於這個性能敏感的應用程序很重要。

它使用 InnoDB。

我同意“糟糕的形式”。

計劃A:

當您確實需要添加另一列時,這是另一種方法。

使用相同的 PRIMARY KEY(“垂直分區”)創建一個新表。(但不是 AUTO_INCREMENT。)將新列放入其中。獲取新數據的 JOIN 將在您的程式碼中變得混亂,但只有在您真正需要這些新列時才會如此。

此外,將其設為 LEFT JOIN,以便在沒有列數據的情況下,新表中的行可能會失去。(此建議適用於“稀疏”資訊。)垂直分區和 LEFT JOIN 對於“叢”中出現的稀疏屬性通常是一個好主意。

B計劃:

詳細說明 JSON 建議 - 有一個 TEXT 欄位,其中包含您不需要 MySQL 來查看或執行 WHERE 或 ORDER BY 的任何欄位(現有或新)的鍵值對。只需讓應用程序看到它們。

更好的是,在應用程序中壓縮 JSON 並將其儲存在 BLOB 中——這將使其小 3 倍。

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