1.VARCHAR类型并不是越长越好 说明:举个栗子,用varchar(5)和varchar(200)去存储“Hello”时空间开销是一样的,更长的列会消耗更多的内存,MySql通常会分配固定大小的内存块来保存内部值。所以,最好的做法就是需要多少就分配多少。 2.ENUM类型 说明:枚举类型的最终存储类型为整数,而不是字符串;还有,枚举枚举字段是按照内部存储的整数而不是字符串进行排序的,这样可能就会出现非预期的排序结果;考虑到这个问题,应该尽量避免用整数去作为enum的枚举常量,因为它的这种双重性很容易导致混乱。 3.BLOB和TEXT类型 说明:关于这两种类型都是为存储特别大的数据而设计的,区别就是:BLOB是采用二进制方式存储,TEXT是采用字符串的方式存储,二进制存储方式没有字符集和排序规则一说;mysql对这种数据类型的排序方式是采取最前max_sort_length字节而不是整个字符串做排序(max_sort_length是可以去设置大小的)。 4.日期时间类型 说明:mysql能存储的最小时间粒度为秒(除了个别存储引擎外),尽量选用TIMESAMP作为时间日期类型,虽然存储范围比DATETIME小很多,但会带来更高的空间效率;最后,它的默认列为NOT NULL,这点跟其他类型有所不同。 2016.11.24 ByAnjun