色偷偷91综合久久噜噜-色偷偷成人-色偷偷尼玛图亚洲综合-色偷偷人人澡久久天天-国内精品视频一区-国内精品视频一区二区三区

Hello! 歡迎來到小浪云!


MySQL 中 key_len 為何與預(yù)期不符?


avatar
小浪云 2024-11-09 183

MySQL 中 key_len 為何與預(yù)期不符?

mysql 中 key_len 的計算方式

你在運行 EXPLaiN 查看執(zhí)行計劃時,注意到了 key_len 不是你預(yù)期的 60,而是 80。這是因為 MySQL 中 key_len 的計算方式與你想象的不同。

在 MySQL 中,char 和 varchar 類型的數(shù)據(jù)在存儲時都會被轉(zhuǎn)換為 UTF-8。每個 UTF-8 字符的長度從 1 到 4 個字節(jié)不等,具體取決于字符的編碼。

對于 char(20) 類型的列,它實際上可以在存儲中占用高達 80 個字節(jié),因為每個字符最多可以占用 4 個字節(jié)。因此,即使表中只有 3 條記錄,key_len 仍然是 80,而不是 60。

值得注意的是,key_len 并不是指表中實際存儲的數(shù)據(jù)大小,而是指索引中存儲的數(shù)據(jù)大小。索引是根據(jù)表中的列創(chuàng)建的,它本質(zhì)上是一種快速查找表中數(shù)據(jù)的目錄。由于索引是按照升序或降序排列的,因此索引中的值必須按該順序存儲。

因此,MySQL 會使用一種叫做前綴壓縮的技術(shù)來存儲索引值。這種技術(shù)可以減少索引中存儲的數(shù)據(jù)大小,從而提高查詢性能。前綴壓縮會刪除索引值中重復(fù)的字符序列,并用指向這些重復(fù)字符序列的指針代替。

在你的例子中,student_name 索引的值都是以 ‘L’ 開頭的。因此,MySQL 會將 ‘L’ 字符存儲一次,并在其他值中用指向 ‘L’ 字符的指針代替。這可以大大減少索引值的大小,從而降低 key_len。

相關(guān)閱讀

主站蜘蛛池模板: 特级黄色毛片视频 | 精品国产精品 | 激情午夜婷婷 | 热99re久久精品这里都是精品免费 | 国产精品久久久久久夜夜夜夜 | 四虎综合 | 天天操天天拍 | 日日操夜夜 | 国产精品一二三区 | 人人揉人人爽五月天视频 | 久久精品视频1 | 六月丁香久久 | 天天影视综合色 | 国产丝袜在线视频 | 国产农村三片免费网站 | 天天舔天天干天天操 | 四虎免费网站 | 人人澡人人澡人人看 | 一级片免费看 | 色一情一乱一伦一视频免费看 | 日韩三级视频在线 | 最近更新中文字幕第一页 | 欧洲国产伦久久久久久久 | 三级黄色片网站 | 欧美国产日韩一区二区三区 | 丝袜中文字幕 | 中文字幕日韩一区二区三区不卡 | 婷婷六月丁 | 久久久国产一区二区三区 | 国产精品三级在线播放 | 天天躁日日躁狠狠躁中文字幕 | 久久精品国产亚洲沈樵 | 99精品一区二区免费视频 | 国产色站| 日韩精选视频 | 国产v片 | 国产黄色网页 | 综合网在线观看 | 一级二级三级黄色片 | a一级毛片视频免费看 | 国产欧美精品系列在线播放 |