亚洲国产第一_开心网五月色综合亚洲_日本一级特黄特色大片免费观看_久久久久久久久久免观看

Hello! 歡迎來到小浪云!


MySQL 中 key_len 的計算方法:為什么只有 3 條記錄時 key_len 為 80?


avatar
小浪云 2024-11-09 187

MySQL 中 key_len 的計算方法:為什么只有 3 條記錄時 key_len 為 80?

mysql key_len 計算方法

mariadb 8.0 引入了 optimizer trace 性能分析工具,可以通過它查看 mysql 的執(zhí)行計劃。在使用 explain 查詢執(zhí)行計劃時,我們可能會發(fā)現(xiàn) key_len 的值與預(yù)期不符。本文將探討 mysql 中 key_len 的計算方式,并解決僅有 3 條記錄時 key_len 為 80 的問題。

key_len 的含義

key_len 表示索引鍵的長度。對于字符類型,key_len 為每個字符的字節(jié)數(shù)乘以索引鍵的長度。

utf8mb4 編碼

問題中的 student_name 列使用 utf8mb4 字符集,該字符集使用不同數(shù)量的字節(jié)來表示不同字符。漢字字符需要 3 個字節(jié),而英文字母僅需要 1 個字節(jié)。

key_len 計算

對于問題中的例子,student_name 列的長度為 20 個字符,而一個 utf8mb4 字符為 4 個字節(jié),因此 key_len 為:

key_len = 20 * 4 = 80
登錄后復(fù)制

雖然只有 3 條記錄,但 key_len 不受記錄數(shù)的影響。這是因為索引鍵的長度是固定的,并且與存儲的數(shù)據(jù)無關(guān)。

因此,在這種情況下,key_len 為 80 是因為 utf8mb4 編碼使用 4 個字節(jié)表示每個字符,而索引鍵的長度為 20 個字符。

相關(guān)閱讀