key_len的长度计算公式:
char和varchar类型key_len计算公式:
varchr(10)变长字段且允许NULL : 10*(Character Set:utf8=3,gbk=2,latin1=1)+1(NULL)+2(变长字段)
varchr(10)变长字段且不允许NULL : 10*(Character Set:utf8=3,gbk=2,latin1=1)+2(变长字段)
char(10)固定字段且允许NULL : 10*(Character Set:utf8=3,gbk=2,latin1=1)+1(NULL)
char(10)固定字段且不允许NULL : 10*(Character Set:utf8=3,gbk=2,latin1=1)
数值数据的key_len计算公式:
TINYINT允许NULL = 1 + 1(NULL)
TINYINT不允许NULL = 1
SMALLINT允许为NULL = 2+1(NULL)
SMALLINT不允许为NULL = 2
INT允许为NULL = 4+1(NULL)
INT不允许为NULL = 4
日期时间型的key_len计算:(针对mysql5.5及之前版本)
DATETIME允许为NULL = 8 + 1(NULL)
DATETIME不允许为NULL = 8
TIMESTAMP允许为NULL = 4 + 1(NULL) TIMESTAMP不允许为NULL = 4