了解Explain语句中的MySQL key_len

根据MySQL网站,该key_len列指示MySQL决定使用的密钥的长度。长度是NULL键列是否显示NULL。请注意,key_len的值使您能够确定MySQL实际使用的多部分键的多少部分。

使用上一个问题的示例,我有一个EXPLAIN

SELECT语句,该语句使用Indexwith与MySQL进行显示key_len: 6。下面显示了索引和所用列的组成。

`Type` char(1) NOT NULL,

`tn` char(1) NOT NULL DEFAULT 'l',

`act` tinyint(1) unsigned NOT NULL DEFAULT '0',

`flA` mediumint(6) unsigned NOT NULL DEFAULT '0',

KEY `Index` (`Type`, `tn`, `act`, `flA`)

那么,值如何key_len让我确定查询使用的是多部分键的前三个部分?

回答:

key_len指定MySQL从密钥中使用的字节数。

索引始终使用left_to_right。即只使用最左边的部分。

您的字段长度如下:

1 byte             `Type` char(1) NOT NULL,

1 byte tn char(1) NOT NULL DEFAULT 'l',

1 byte act tinyint(1) unsigned NOT NULL DEFAULT '0',

3 bytes flA mediumint(6) unsigned NOT NULL DEFAULT '0',

1+1+1+3 = 6 bytes KEY `Index` (`Type`, `tn`, `act`, `flA`)

key usage always starts here ---^^^^^

如果key_len = 3,则使用type+tn+act

注意,在此配置中,Key_len = 4是不可能的。

以上是 了解Explain语句中的MySQL key_len 的全部内容, 来源链接: utcz.com/qa/397802.html

回到顶部