0
所以,我想知道是否有一個聰明的方法來處理添加一列到包含大量數據的MySQL表。如果我要走標準的遷移路線,則需要大約6個小時。我想知道是否有更好的解決方案。在Rails中,有沒有其他解決方案可以將列添加到數據庫中的大型表中?
避免漫長遷移的一種方法是創建一個新的表/模型,並在ActiveRecord中設置委派類型關係。雖然這很好地工作,但似乎有點不妥。
我是否應該打氣並做超長的遷移?
所以,我想知道是否有一個聰明的方法來處理添加一列到包含大量數據的MySQL表。如果我要走標準的遷移路線,則需要大約6個小時。我想知道是否有更好的解決方案。在Rails中,有沒有其他解決方案可以將列添加到數據庫中的大型表中?
避免漫長遷移的一種方法是創建一個新的表/模型,並在ActiveRecord中設置委派類型關係。雖然這很好地工作,但似乎有點不妥。
我是否應該打氣並做超長的遷移?
我想我會讓別人知道,我已經決定在SoundCloud上探索由人們編寫的Gem來處理長時間遷移,同時保持數據庫(不鎖定)。
https://github.com/soundcloud/lhm
其他解決方案包括的Percona的PT-在線模式的變化:
http://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html
你所說的 「大量數據」 是什麼意思?文本?爲了更好地回答問題,您需要提供有關該問題的更多信息。 – spullen
一些問題..你是否需要每個記錄的數據點,或者你能否建立一個有選擇地加入需要數據的記錄的關係表?有沒有可以設置存儲任意屬性的列式表格?如果你需要每一條記錄而不是一個新的列可能是有保證的,但是如果你只需要一部分記錄而不是關係型方法就可以。 – dethtron5000
@spullen - 餐桌上有大約28M行。 – era86