MySQL執(zhí)行計(jì)劃中key_len計(jì)算規(guī)則解讀
MySQL執(zhí)行計(jì)劃中key_len計(jì)算規(guī)則
今天來(lái)說(shuō)一下MySQL執(zhí)行計(jì)劃中key_len的計(jì)算,當(dāng)用explain查看SQL的執(zhí)行計(jì)劃時(shí),執(zhí)行計(jì)劃中會(huì)顯示出key_len的值,根據(jù)這個(gè)值可以判斷聯(lián)合索引的覆蓋長(zhǎng)度,從而在可以獲知SQL語(yǔ)句走了聯(lián)合索引中的哪些索引。(覆蓋長(zhǎng)度一般情況是越長(zhǎng)越好)
影響索引長(zhǎng)度因素
(索引列為字符串類型的情況)

key_len的計(jì)算公式
- varchar():表字符集長(zhǎng)度*列長(zhǎng)度+2(變長(zhǎng))+1(null) 若是列被定義為"not null",則不需要加1
- char():表字符集長(zhǎng)度*列長(zhǎng)度+1(null) 若是列被定義為"not null",則不需要加1
常用的字符集:
- utf8mb4:4個(gè)字節(jié)
- utf8:3個(gè)字節(jié)
- gbk:2個(gè)字節(jié)
- latin:1個(gè)字節(jié)
示例:
表的字符集選用utf8mb4,計(jì)算
varchar(10),not null ---> key_len=4*10+2=42 char(10),null ---> key_len=4*10+1=41
?總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql之跨庫(kù)關(guān)聯(lián)查詢(dblink)問(wèn)題
這篇文章主要介紹了mysql之跨庫(kù)關(guān)聯(lián)查詢(dblink)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
MySQL 庫(kù)的操作案例之從創(chuàng)建配置到備份恢復(fù)
主要介紹MySQL庫(kù)創(chuàng)建、字符集配置、查改刪備及監(jiān)控,附實(shí)戰(zhàn)案例與避坑要點(diǎn),覆蓋核心操作,本文就從實(shí)戰(zhàn)角度出發(fā),把MySQL庫(kù)操作的核心知識(shí)點(diǎn)講透,感興趣的朋友跟隨小編一起看看吧2025-10-10
MySQL中存儲(chǔ)過(guò)程(procedure)的使用及說(shuō)明
存儲(chǔ)過(guò)程是預(yù)先定義的SQL語(yǔ)句集合,可在數(shù)據(jù)庫(kù)中重復(fù)調(diào)用,它們提供事務(wù)性、高效性和安全性,MySQL和Java中均可創(chuàng)建和調(diào)用存儲(chǔ)過(guò)程,示例展示了如何在MySQL中創(chuàng)建和調(diào)用存儲(chǔ)過(guò)程,以及如何在Java中實(shí)現(xiàn)存儲(chǔ)過(guò)程的調(diào)用2025-11-11
Mysql 5.6使用配置文件my.ini來(lái)設(shè)置長(zhǎng)時(shí)間連接數(shù)據(jù)庫(kù)的問(wèn)題
這篇文章主要介紹了Mysql 5.6使用配置文件my.ini來(lái)設(shè)置長(zhǎng)時(shí)間連接數(shù)據(jù)庫(kù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
Mysql 進(jìn)行SQL調(diào)優(yōu)的方法
文章詳細(xì)介紹了MySQL優(yōu)化索引的多種方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2025-11-11
MySql如何查看索引并實(shí)現(xiàn)優(yōu)化
這篇文章主要介紹了MySql如何查看索引并實(shí)現(xiàn)優(yōu)化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12

