mysql中数据类型的选择

来源:赵克立博客 分类: 数据库 标签:mysql发布时间:2018-06-06 09:21:31最后更新:2018-06-06 10:33:36浏览:1179
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2018-06-06 10:33:36
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章

在前期数据量不大的时候一般也不用考虑哪个字段用什么数据类型,但是等数据量大的时候就得考虑数据库的优化啦,这个时候就得严格什么样的数据用什么样的数据类型才能提高效率下面整理下各种数据类型的使用选择

数据类型和范围

数字类型

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   可以用数据类型也可以用字符类型


微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python