列类型选择的原则

  1. 字段类型优先级
    整型 > date|time > enum > char|varchar > blob

    整型,time运算快,节省空间。
    char|varchar需要考虑字符集的转换与排序时的校对集,速度慢。
    blob无法使用内存临时表。

  2. 够用就行,不要慷慨(如smallint、varchar(N))
      大的字段浪费内存,影响速度,以varcahr(10)、varchar(300)举例,假如存储的内容相同,在表联查时,varchar(300)要花更多内存。

  3. 尽量避免NULL
      NULL不利于索引,内部存储使用特殊的字节进行标注,在磁盘上占据的空间其实更大。
      其次在查询的时候也不太方便需要使用特定的谓词is nullis not null

  4. enum 列

    1. enum列在内部是用整型来存储的
    2. enum列与enum列相关联速度最快
    3. enum列比varchar的弱势在于碰到char类型字段的关联时要转化,需要花费时间
    4. enum的又是在于当char非常长时,enum依然是固定长度的整型,当查询的数据量越大时越明显。
    5. enum与char|varchar关联时,比enum关联enum或char关联char要慢

最后编辑: 于 3年前

标签

评论列表(0)

    暂无评论