大家都知道mysql的資料型別非常多,但是在設計資料表的時候,要想有不錯的效能,請注意一下幾點:
1:資料型別越小越好:例如:如果只存0-200的整數 建議使用:tinyint unsinged 更好
更小的資料型別占用的占用的更少的磁碟,快取,cpu,並且處理資料時使用cpu的週期也更少
3:盡量少使用null mysql處理null欄位很複雜,比較的時候,如果這個欄位有索引,會耗時
下面說一下int欄位的優化:
int 有: tinyint 1個位元組 儲存範圍 -128到127 unsigned 0-255
smallint 2個位元組 儲存範圍 -32,768 到 32,767 unsigned 0-65535
mediumint 3個位元組 儲存範圍 -8388608到8388607 unsigned 0-16777215
int 4個位元組 儲存範圍 -2,147,483,648到 2,147,483,647 unsigned 0到4294967295
biginr 8個位元組 儲存範圍 -9223372036854775808到9223372036854775807 unsigned 0-18446744073709551615
優化注意事項:
1:int(3) =int(10) int(n) 對資料儲存的大小沒有限制 ,限制儲存範圍的為資料型別 n:左右只是在你設定字段填充0的時候 不足n的位數的時候填充0
2:int(3) > tiny(3) int(3)在儲存的時候占用磁碟要比 tinyint(3)要大 能選擇tinyint 不選則samllint
3:可以用字段的unsigned提公升存值範圍,無符號和有有符號 使用相同的空間,有相同的效能。
4:如果乙個欄位中只有幾個固定的整數 盡量使用列舉 不用 整數型別
mysql中int型別的寬度M解析
一直以來在mysql建表的時候都有乙個困惑,那就是關於int型別。int m 這個m代表什麼?比如我定義乙個文章的主鍵news id為int 8 為什麼要定義為8?如果我儲存乙個位數為10的數3445667788,發現實際也是可以儲存的。於是檢視mysql的手冊,發現有這樣一段話 m指示最大顯示寬度...
DNS解析及優化
前面的話 我們都知道tcp ip中使用的是套接字 ip位址與埠號 來進行tcp連線,那為什麼不使用網域名稱來直接通訊呢?原因有以下兩點 hosts檔案 在說dns之前,必須提乙個hosts檔案。hosts檔案作用 網域名稱和ip的對應關係儲存在乙個叫hosts檔案中。最初,通過網際網路資訊中心來管理...
mysql欄位型別解析 MySQL欄位型別最全解析
前言 要了解乙個資料庫,我們必須了解其支援的資料型別。mysql 支援大量的字段型別,其中常用的也有很多。前面文章我們也講過 int 及 varchar 型別的用法,但一直沒有全面講過字段型別,本篇文章我們將把字段型別一網打盡,講一講常用字段型別的用法。常用的字段型別大致可以分為數值型別 字串型別 ...