2017-03-25 22 views
1

我在過去遇到的一個問題是處理巨大的表。一旦表格超過一百萬行,添加列變得更加困難。已經有很多關於方法的討論來解決這個問題:我應該向MySQL表中添加備用列以準備大量的行嗎?

https://dba.stackexchange.com/questions/44777/how-to-add-column-to-big-table-in-mysql

規劃只是到目前爲止的業務,最終,我知道我將需要添加更多的列。目前我有約160,000所以我開始考慮未來打樣

您認爲值得添加備用列嗎?在其他 單詞中,尚未使用的列。

如果是這樣,我應該採取什麼辦法?我應該爲char,int,text等不同類型添加列嗎?

+0

聽起來像[過早優化](http://softwareengineering.stackexchange.com/questions/80084/is-premature-optimization-really-the-root-of-all-evil)給我。 –

+0

你可以考慮移動到一個更靈活的數據庫,一個允許動態模式的數據庫。 –

+2

只需要使用主表中的pkey來反向引用,根據需要創建一個新表,並添加其他信息。這一切都歸結爲合理的數據分離。 – Rogue

回答

1

如果新開發人員不得不通過應用程序,那麼備用列並不是最好的方式,因爲他們沒有意識到這一點,或者有可能某些列被添加到應用程序中而沒有任何價值,並且您以後會忘記它。

一些其他的選擇可能是適合您的需要:

。用一對一的關係創建新表。

優點:與現有的數據和結構沒有問題。前端將是安全的,如果正在使用select *

缺點稱爲查詢:觸發關聯表將必須單獨創建。

。添加更多的列到現有的表:

優點:表的編號將是有限的。 基於表格的觸發器不需要重新創建。

缺點:數據庫結構正常化問題都可以提出。 列索引需要完成,特別是如果組合列索引。插入沒有列列表的查詢會破壞系統的工作。

而且是沒有意義的添加多種類型的列沒有有效的預測。