索引key_len的长度

638 阅读1分钟

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