MySQL列类型选择

时间:2021-10-13 16:15:43

比如年龄这个字段可以使用  1990-03-15  也可以用  19900315表示
在列类型上可以选择 char 和 int;
如果一个字段可以选择多种类型,尽量选择一个更快的类型;
字段类型优先级   整型>date,time>char,varchar>blob
整型,time运算快,节省空间
char/varchar要考虑字符集的转换与排序的校对集,速度慢
blob无法使用内存临时表
enum类型 内部是用整型来存储的,所以速度也是跟int一样的,但是需要注意,如果enum存储的字符串和 char类型字段
关联查询,enum内部需要一次转化,要花时间,enum和char列关联的速度要慢于char和char,但是也要看情况具体分析;

如果确定要用int还可以考虑一下是否可以用 smallint/tinyint,
能够char(10)解决的不要用char(20)  ,不要太慷慨了;

尽量避免用NULL
NULL不利于索引,要 用特殊的字节来标注,在磁盘上占据的空间其实更大。