Mysql

在生產數據庫上創建分區

  • August 10, 2011

我有一個執行良好的生產 MySQL 5.1 數據庫,但我想提高查詢性能。我從來沒有使用過分區,只是瀏覽了手冊。

我有兩個表涉及列上的複合鍵:

Bill_Num Bill_Date

我想在 Bill_Date 創建分區。該表包含四年的記錄。我想知道新的分區表將如何適應未來幾年?我還想知道是否需要對現有查詢中的表名進行更改,並將表名替換為新的分區表名?

我想知道新的分區表將如何適應未來幾年?

我相當肯定,根據 5.1 文件,您必須更改表添加分區才能處理未來幾年。

我還想知道是否需要對現有查詢中的表名進行更改,並將表名替換為新的分區表名

完成此設置後,您是否需要使用“舊”表?如果沒有,我將按照以下步驟操作:

  1. 在表名“mytable_new”下根據需要創建分區表
  2. INSERT INTO mytable_new SELECT * FROM mytable
  3. RENAME TABLE mytable TO mytable_old
  4. RENAME TABLE mytable_new TO mytable

這應該避免更改查詢的需要。如果您的表的寫入量非常大(如果您需要對它進行分區,我認為它一定是這樣!),您可能希望有一個維護時間範圍,在該時間範圍內它處於離線狀態,直到操作完成。

希望這可以幫助。

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