我繼承了一個數據庫,其中以前的開發人員對關鍵列使用了mediumint
和int
的混合。我正在瀏覽數據庫並嘗試添加外鍵,並且由於各個表上的鍵列之間的類型不匹配,我遇到了一些問題。爲主鍵列使用mediumint而不是int的好處?
實施例:
Company
--------
Id (int)
Name (whatever)
Employee
---------
Id (mediumint)
CompanyId(mediumint)
Name (whatever)
From what I understand,使用mediumint
將節省存儲箱中的一個字節(也限制我有點超過800萬行)。
我寧願將所有內容移動到int
,但我想知道是否會有使用mediumint
而不是int
有什麼明顯的好處?
我能看到的唯一的另一件事是他們有不同的可接受的值範圍。除此之外,全部都是關於存儲。此外,我不明白爲什麼員工會在中間,而公司是一個整數。有比公司更多的員工。 – Marc 2013-04-30 16:22:49
除了範圍之外,唯一的區別是存儲大小:當你有*數百萬行時,它可以節省空間,這可以幫助MySQL更快地找到數據,但如果這樣做,我不會擔心少於幾百萬行。 – 2013-04-30 16:23:27
如果您僅在幾百萬行中看到好處,並且您的空間用完了800萬,那麼除非您確定永遠不會破解800萬,否則似乎可能不值得。 – 2013-04-30 16:24:45