首页 > 代码库 > mysql 索引长度解释及不使用索引的一种特殊情况

mysql 索引长度解释及不使用索引的一种特殊情况

如果两个表关联的字段,在表结构中设置的字符集不一样,即使设置了索引,也无法使用。

详情可参考:

https://yq.aliyun.com/articles/69138?spm=5176.100239.bloglist.185.xQpesw

关于mysql explain时,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)

详情参考:http://www.cnblogs.com/gomysql/p/4004244.html

mysql 索引长度解释及不使用索引的一种特殊情况