MySQL的key_len是指索引的長度,它的計(jì)算方式是根據(jù)索引中被使用的字段的最長可能長度來計(jì)算的。
對于單個(gè)字符類型的字段(比如char、varchar、text等),key_len的計(jì)算方法是該字段的最大長度。比如,如果一個(gè)varchar(50)字段被用作索引,那么它的key_len就是50。
對于多個(gè)字符類型字段的組合索引,key_len的計(jì)算方法是各字段最大長度之和。比如,如果使用了(city, country)這個(gè)組合索引,其中city為varchar(50),country為char(3),那么key_len就是53。
CREATE TABLE `test` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `age` tinyint(3) unsigned NOT NULL, `sex` enum('male','female') NOT NULL, `address` varchar(100) NOT NULL, `email` varchar(100) NOT NULL, PRIMARY KEY (`id`), KEY `idx_name_age` (`name`,`age`), KEY `idx_sex_address` (`sex`,`address`), KEY `idx_email` (`email`(20)) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
在上面的示例中,idx_name_age和idx_sex_address都是組合索引,key_len的計(jì)算方法分別為50+1=51和3+100=103。
需要注意的是,如果使用了前綴索引,也會影響key_len的計(jì)算結(jié)果。比如,在上面的示例中,idx_email是對email字段的前20個(gè)字符建立的索引,因此key_len的計(jì)算結(jié)果為20。
上一篇css 好看加載效果
下一篇mysql的list