在前期資料量不大的時候一般也不用考慮哪個欄位用什麼資料型別,但是等資料量大的時候就得考慮資料庫的優化啦,這個時候就得嚴格什麼樣的資料用什麼樣的資料型別才能提高效率下面整理下各種資料型別的使用選擇
資料型別和範圍
數字型別
tinyint
有符號-128-127
無符號 0-255 的整型資料。
儲存大小為 1 位元組。
smallint
有符號 -2^15 (-32,768) 到 2^15 - 1 (32,767)
無符號 0到65535
儲存大小為 2 個位元組。
mediumint
有符號的範圍是-8388608到8388607,
無符號的範圍是0到16777215。
一位大小為3個位元組
int/integer
有符號從 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647)
無符號0到4294967295
儲存大小為 4 個位元組。
bingint
有符號從 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807)
無符號0 到18446744073709551615
儲存大小為 8 個位元組。
字元型別
char(m) [binary] 或 nchar(m) [binary]
m的範圍為1 - 255(中/英字元的個數),如果沒有binary項,則不分大小寫,nchar表示使用預設的字符集.在資料庫中以空格補足,但在取出來時末尾的空格將自動去掉.
速度快,為定長儲存,不管資料多少都按設定的一儲存,會處理尾部空格
[national] varchar(m) [binary]
m的範圍為1 - 255(中/英字元的個數).在資料庫中末尾的空格將自動去掉.
速度比char慢,為變長儲存,資料有多少就佔多少的空間
tinyblob 或 tinytext
255(2^8-1)個字元
blob 或 text
65535(2^16-1)個字元
mediumblob 或 mediumtext
16777215 (2^24-1)個字元
longblob 或 longtext
4294967295 (2^32-1)個字元
日期型別
date
1000-01-01 到 9999-12-31
datetime
1000-01-01 00:00:00 到 9999-12-31 23:59:59
timestamp
1970-01-01 00:00:00 到 2037-12-31 23:59:59
time
-838:59:59 到 838:59:59
year(2/4)
預設為4位格式,4位格式取值範圍為1901 - 2155,0000,2位格式取值範圍為70-69(1970-2069)
資料型別選擇
乙個資料可以用多種型別來儲存時要先考慮 數字型別 > 日期或二進位制型別 >字元型別。對於相同級別的資料型別,應該優先選擇占用空間小的資料型別
比如乙個儲存年月日的字段資料 19900101 可以用資料型別也可以用字元型別
MySQL資料型別 資料型別選擇
在mysq中建立表時,需要考慮為字段選擇哪種資料型別是最合適的。選擇合適的資料型別,會提高資料庫的效率。整數型別和浮點數型別最大的區別在於能否表達小數。整數型別不能表示小數,而浮點數型別可以表示小數。不同的整數型別的取值範圍不同。tinyint型別的取值範圍是0 255。如果欄位的最大值不超過255...
MySQL資料型別選擇
在資料庫設計的時候,如果資料型別選擇不當,可能會對效能造成很大的影響,比如儲存姓名的字段,如果選擇vchar 255 那麼暫用更多的儲存空間,同時也會對io產生影響,因此在資料庫設計時對資料庫資料型別的準確選擇,也會對資料庫的效能有乙個很大的提公升。我在工作中就遇到過很多時候一些開發人員不注意對資料...
mysql 資料型別選擇
1.1char與varchar 由於char是固定長度的,所以訪問速度比varchar快。缺點是浪費儲存空間,程式需要對行尾進行處理,所以對那些長度變化不大,並且對查詢速度有較高要求的資料可以通過char來訪問。當然這個也是由不同的儲存引擎來決定的。myisam 儲存引擎 建議使用固定長度的資料列代...