数据类型
数字类型:
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) 收藏 举报
浙公网安备 33010602011771号