MySQL之表结构设计
Schema設(shè)計(jì)原則 :
盡量避免NULL:最好指定列為NOT NULL,除非真的需要存儲(chǔ)NULL值。NULL列使得索引、索引統(tǒng)計(jì)和值比較都更復(fù)雜,使用更多的存儲(chǔ)空間。如果計(jì)劃在列上建索引,就應(yīng)該盡量避免設(shè)計(jì)成可為NULL的列
?
實(shí)數(shù)類型
因?yàn)樾枰~外的空間和計(jì)算開(kāi)銷,所以盡量只在對(duì)小數(shù)進(jìn)行精確計(jì)算時(shí)才使用DECIMAL—例如存儲(chǔ)財(cái)務(wù)數(shù)據(jù)。但在數(shù)據(jù)量比較大的時(shí)候,可以考慮使用BIGINT代替DECIMAL,將需要存儲(chǔ)的數(shù)值根據(jù)小數(shù)的位數(shù)乘以相應(yīng)倍數(shù)即可
?
字符串類型
下面這些情況使用VARCHAR:
CAHR的使用場(chǎng)景:
?枚舉類型
?特殊數(shù)據(jù)類型
IPv4 地址:雖然經(jīng)常使用VARCHAR(15)列來(lái)存儲(chǔ)IP地址。然而,它們實(shí)際上是32位無(wú)符號(hào)整數(shù),不是字符串。用小數(shù)點(diǎn)將地址分成四段的表示方法只是為了讓人們閱讀容易。所以應(yīng)該用無(wú)符號(hào)整數(shù)存儲(chǔ)IP地址。MySQL提供INET_ATON() 和 INET_NTOA()函數(shù)在這兩種表示方法之間轉(zhuǎn)換。用varchar存儲(chǔ)ip地址的弊端之一是:無(wú)法根據(jù)指定的ip地址范圍進(jìn)行區(qū)間搜索,而轉(zhuǎn)換為32位無(wú)符號(hào)整數(shù)則可以
總結(jié)
以上是生活随笔為你收集整理的MySQL之表结构设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 通信工程师题库
- 下一篇: 使用adb查看数据库的一些命令