• 为未来预留足够扩展,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类型

ouyida3
117 声望3 粉丝

技术爱好者,敏捷粉丝,关注前端、java、数据库和云计算。