我們使用InnoDB引擎在MySql中存儲了一個非常大的(10百萬以上)行表。列'x'被定義爲'smallint(5)unsigned not null'。InnoDB上的MySql數值類型遷移
自從幾年前的原始設計以來,需求已經發生變化,而'x'列需要存儲最小數據類型大小'int unsigned not null'。
我們被允許「短暫」停機以部署應用程序(少於5分鐘),因此如果數據庫表需要暫時以任何方式暫時不可用(例如,全表鎖)。如果更改可以「在線」完成,那麼我們可能會接受較長時間的性能下降。
有沒有人有過在非常大的表上更改MySql/InnoDB中的列類型的經驗?如果是這樣,它是否行得通,大致需要多長時間(我意識到這是硬件依賴的,我只是想了解我們在時間窗口中要求做的事情是否甚至有可能)?
由於提前,
多久,當你在測試實驗室應用到一個同樣大小的桌子上生產高檔五金沒ALTER TABLE走? – MarkR 2011-05-31 19:18:22
@MarkR - 正在進行中,但可能需要一段時間才能將環境設置爲脫離我的團隊控制。因此,試圖在此期間獲得可行性的想法... – Scruffers 2011-05-31 19:48:22