選擇表示數據的最小類型(正確存儲你的內容):比如說,能夠使用char數據類型存儲,就不必選擇text,能夠使用int型存儲數據,就不應該使用long型。
理由:更小的數據類型使用了更小的磁盤空間,內存和cpu緩存,而且需要的cpu周期也更少。
PS:確保不會低估要存儲的值。(能夠很好的把握需求,對要存儲的數據要比較精確的判斷)
2、簡單就好
這個好理解,盡可能選擇簡單的數據類型存儲數據,mysql的數據類型不外乎int,long,char,varchar,text等等。那么在選擇的時候,盡量選擇最簡單的基本數據 類型存儲數據。比如我平常存儲時間的時候一般都是存成int類型(轉化成timestamp).
理由:越簡單的數據類型,需要的cpu周期越少。
3、盡量避免null
盡可能的把字段定義為not null
理由:Mysql難以優化引用了可空列的查詢,空列會使索引,索引統計和值更加復雜,可空列需要更多的存儲空間。一般來說,設置默認值(DEFAULT)是個比較好 的習慣。當然該條對Mysql表性能的提升影響不是很大,不應放在最優先考慮的地位。
綜上所述,我們在設計一個Mysql數據表的時候:
第一步:大致確定字段的數據類型,數字,字符串,時間等,比較直觀
第二步:確定特定的類型,比如說:數字里有tinyint,smallint,int,long等,選擇最合適的一個(更小通常更好)
第三步:如有必要,請為字段設置默認值。
當然,索引優化肯定是必不可少的,不過這屬于設計表完成之后的優化范圍了。