- 为未来预留足够扩展,alter table很麻烦
- 永远选足够的最小长度
整型
- 整型有五个,tinyint smallint mediumint int bigint
- 对应占用1,2,3,4,8字节
- 如果不用负数,后面加unsigned,分别大一倍,为255,6万多,一千多万,四十多亿,四十多亿平方
- 不要指定长度,int(1)和int(99)没区别,其实都是int(11)的效果
- 无符号为int(10)
- int(0)或int(-1)都会自己修正为int(11)
字符串
- 固定长度用char,比varchar省一字节
- 长度非常不固定用varchar
- char后面的空格会去掉
- 二进制用binary*
- 大文件是blob和text
其他
- 时间只能到秒,5.6.4版本好像到微秒
- 1970年到2038年1月用timestamp四字节
- 其他用datetime,八字节
- 还有year,date等
- 枚举用enum,省空间
- integer,boolean都是别名而已
- 实数用double或float,需精确要decimal
- 表关联字段最好同类型
- 新版本有json类型