有兩種方法可以在數據庫中存儲枚舉類型:作爲字符串或整數。是否將數據庫字符串枚舉轉換爲值得的整數?
將枚舉(sex = {male,female}
,account_type = {regular,pro,admin}
等)保存爲字符串使事情更具可讀性,但需要比整數更多的空間。
另一方面,整數需要映射枚舉進出數據庫。作爲一個好處,區分大小寫在數據庫之外用整數處理。
假設兩者都被索引,是否做整數轉換一般值得呢?整數查找速度快多少?
例
也許一個具體的例子可以幫助可視化的東西。 讓我們把上面的account_type帶到100,000個用戶的數據庫。
字符串枚舉
假設8位固定長度CHAR型
7*100000*8/8 = 700000 bytes
整數枚舉
假設8位整數TINYINT
100000*8/8 = 400000 bytes
似乎大小几乎是整數枚舉的一半。還需要對索引進行合併。