数据类型

数字类型:

  TINYINT:1字节 

  SMALLINT:2字节

  MEDIUMINT:3字节

  INT:4字节

  BIGINT:8字节(long)

注意:INT(11)这个11表示显示11个数字,并不是限定存放的数值范围,存放数值范围仅跟自身类型有关。

 

浮点和定点数

FLOAT(4字节)

DOUBLE(8字节)

DECIMAL(M,D)  M+2个字节

注意:当要求小数的精度较高,例如金钱,一定要使用定点类型,不会有误差。定点和浮点在超出精度时都会四舍五入。

 

时间类型

YEAR:仅表示年  1字节

DATE:仅表示天(年月日)  2字节

TIME:仅表示时间(12:36:00)  3字节

DATETIME:(1000-9999的年月日时分秒毫秒) 8字节 

TIMESTAMP(1970-2038的年月日时分秒)  4字节

注意:NOW()函数会随着类型的变化而改变插入的值

 

字符串类型

CHAR(M):定长字符串,当插入列长度固定,使用它比较快,且节省空间,不固定时浪费空间。

VARCHAR(M):指定最大长度的变长字符串,第一位存放字符串的实际长度。

TINYTEXT  变长字符串    2^8-1个字符

TEXT  变长字符串      2^16-1个字符

MEDIUMTEXT  变长字符串  2^24-1个字符

LONGTEXT  变长字符串    2^32-1个字符

 

ENUM  表示固定的字符串集合中的其一

SET   表示固定的字符串集合中的多个

 

二进制类型

BIT

BINARY

VARBINAY

TINYBINARY
BLOB  存放二进制数据(图片、视频、音频)

MEDIUMBLOB

LONGBLOB

 

类型选择

(1)尽量选择可以满足业务要求的最小类型

(2)能用数字类型就不要用字符串,mysql对数字类型处理比对字符串要好很多(循环遍历每个字符)

(3)对于小数精确度要求不高的可以使用浮点类型。要求高的请使用定点类型

(4)使用字符串时,定长的(如MD5等)请使用定长类型

 

posted on 2018-07-07 11:09  javaGreenHand。。。  阅读(46)  评论(0)    收藏  举报