整型
mysql的整型是默认带符号的。
有时会看到定义整型的写法是int(11),无论括号里的数字N是多少,int类型永远占用4个字节。括号里的N代表的是显示宽度,没什么用。
浮点数
char和varchar类型
类型 | 大小 | 用途 |
---|---|---|
CHAR | 0-255字节 | 定长字符串 |
VARCHAR | 0-65535 字节 | 变长字符串 |
TEXT | 0-65 535字节 | 长文本数据(变长) |
char和varchar的区别
- char(n) 固定长度,比如char(4)不管是存入几个字符,都将占用4个字节;varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),。因此char的查询效率更高。
- char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉(目的是满足固定长度)。所以char类型存储的字符串末尾不能有空格,varchar不限于此。
varchar与text的区别
varchar存放在数据行中,与其他字段的属性相邻存放,检索效率很高。而text有可能被存放在磁盘的另一处地方,数据表中只存放指向text的指针,检索效率比较低。一般来说,用varchar放比较短的字符串,用text放比较长的文本。
结论
1、经常变化的字段用varchar;
2、知道固定长度的用char;
3、超过255字节的只能用varchar或者text;
4、能用varchar的地方不用text;
5、能够用数字类型的字段尽量选择数字类型而不用字符串类型,这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连接回逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了;