日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

explain 中ken_len作用

發(fā)布時(shí)間:2024/3/12 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 explain 中ken_len作用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

explain 中key_len的作用

key_len越小 索引效果越好!

key_len的長(zhǎng)度是如何計(jì)算的?
name的字段類(lèi)型是varchar(20),字符編碼是utf8,一個(gè)字符占用3個(gè)字節(jié),那么key_len應(yīng)該是 20*3=60。

key_len的長(zhǎng)度計(jì)算公式:

varchr(10)變長(zhǎng)字段且允許NULL = 10 * ( character set:utf8=3,gbk=2,latin1=1)+1(NULL)+2(變長(zhǎng)字段)

varchr(10)變長(zhǎng)字段且不允許NULL = 10 *( character set:utf8=3,gbk=2,latin1=1)+2(變長(zhǎng)字段)

char(10)固定字段且允許NULL = 10 * ( character set:utf8=3,gbk=2,latin1=1)+1(NULL)

char(10)固定字段且不允許NULL = 10 * ( character set:utf8=3,gbk=2,latin1=1)

bigint的長(zhǎng)度是8bytes

int key_len長(zhǎng)度是4 ,typeint的長(zhǎng)度是1

smallint 長(zhǎng)度是2 middleint長(zhǎng)度是3

在這里 key_len 大小的計(jì)算規(guī)則是:
a、一般地,key_len 等于索引列類(lèi)型字節(jié)長(zhǎng)度,例如int類(lèi)型為4-bytes,bigint為8 bytes;

b、如果是字符串類(lèi)型,還需要同時(shí)考慮字符集因素,例如:CHAR(30) UTF8則key_len至少是90 bytes;

c、若該列類(lèi)型定義時(shí)允許NULL,其key_len還需要再加 1 bytes;

d、若該列類(lèi)型為變長(zhǎng)類(lèi)型,例如 VARCHAR(TEXT\BLOB不允許整列創(chuàng)建索引,如果創(chuàng)建部分索引,也被視為動(dòng)態(tài)列類(lèi)型),其key_len還需要再加 2 bytes

舉例說(shuō)明
例如,有個(gè)聯(lián)合索引 idx1(c1, c2, c3),3個(gè)列均是INT NOT NULL,那么下面的這個(gè)SQL執(zhí)行計(jì)劃中,key_len的值是8而不是12:

SELECT…WHERE c1=? AND c2=? ORDER BY c1;

這句話的意思是: 沒(méi)有使用完全索引

通過(guò)這個(gè)案例,就可以知道 有沒(méi)有完全使用索引。

總結(jié)

以上是生活随笔為你收集整理的explain 中ken_len作用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。