六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

對(duì)于mysql explain中key_len的計(jì)算方法講解

[摘要]mysql的explain命令可以分析sql的性能,其中有一項(xiàng)是key_len(索引的長(zhǎng)度)的統(tǒng)計(jì)。本文將分析mysql explain中key_len的計(jì)算方法。 1.創(chuàng)建測(cè)試表及數(shù)據(jù)CREATE...

mysql的explain命令可以分析sql的性能,其中有一項(xiàng)是key_len(索引的長(zhǎng)度)的統(tǒng)計(jì)。本文將分析mysql explain中key_len的計(jì)算方法。

1.創(chuàng)建測(cè)試表及數(shù)據(jù)

CREATE TABLE `member` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `age` tinyint(3) unsigned DEFAULT NULL, PRIMARY KEY (`id`), KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `member` (`id`, `name`, `age`) VALUES (NULL, 'fdipzone', '18'), (NULL, 'jim', '19'), (NULL, 'tom', '19');

2.查看explain

name的字段類型是varchar(20),字符編碼是utf8,一個(gè)字符占用3個(gè)字節(jié),那么key_len應(yīng)該是 20*3=60

mysql> explain select * from `member` where name='fdipzone';
+----+-------------+--------+------+---------------+------+---------+-------+------+-----------------------+  id   select_type   table    type   possible_keys   key    key_len   ref     rows   Extra                  
+----+-------------+--------+------+---------------+------+---------+-------+------+-----------------------+   1   SIMPLE        member   ref    name            name   63        const      1   Using index condition  
+----+-------------+--------+------+---------------+------+---------+-------+------+-----------------------+

explain的key_len為63,多出了3
name字段是允許NULL,把name改為NOT NULL再測(cè)試

ALTER TABLE `member` CHANGE `name` `name` VARCHAR(20) NOT NULL;mysql> explain select * from `member` where name='fdipzone';
+----+-------------+--------+------+---------------+------+---------+-------+------+-----------------------+  id   select_type   table    type   possible_keys   key    key_len   ref     rows   Extra                  
+----+-------------+--------+------+---------------+------+---------+-------+------+-----------------------+   1   SIMPLE        member   ref    name            name   62        const      1   Using index condition  
+----+-------------+--------+------+---------------+------+---------+-------+------+-----------------------+

現(xiàn)在key_len為62,比剛才少了1,但還是多了2。可以確定,字段為NULL會(huì)多占用一個(gè)字節(jié)。
name字段類型為varchar,屬于變長(zhǎng)字段,把varchar改為char再測(cè)試

ALTER TABLE `member` CHANGE `name` `name` CHAR(20) NOT NULL;mysql> explain select * from `member` where name='fdipzone';
+----+-------------+--------+------+---------------+------+---------+-------+------+-----------------------+  id   select_type   table    type   possible_keys   key    key_len   ref     rows   Extra                  
+----+-------------+--------+------+---------------+------+---------+-------+------+-----------------------+   1   SIMPLE        member   ref    name            name   60        const      1   Using index condition  
+----+-------------+--------+------+---------------+------+---------+-------+------+-----------------------+

改為定長(zhǎng)字段后,key_len為60,與預(yù)測(cè)的一致。
總結(jié):使用變長(zhǎng)字段需要額外增加2個(gè)字節(jié),使用NULL需要額外增加1個(gè)字節(jié),因此對(duì)于是索引的字段,最好使用定長(zhǎng)和NOT NULL定義,提高性能。

本篇文章講解了mysql explain中key_len的計(jì)算方法,更多相關(guān)內(nèi)容請(qǐng)關(guān)注php中文網(wǎng)。

相關(guān)推薦:
如何通過php 使用curl模擬ip和來源進(jìn)行訪問

通過mysql 轉(zhuǎn)換NULL數(shù)據(jù)方法

關(guān)于php 函數(shù)使用可變數(shù)量的參數(shù)的相關(guān)內(nèi)容

以上就是關(guān)于mysql explain中key_len的計(jì)算方法講解的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。




主站蜘蛛池模板: 最新版天堂中文在线官网 | 日韩精品一区二区三区 在线观看 | 我看黄色一级片 | 午夜视频高清在线aaa | 亚洲国产精品高清在线一区 | 在线你懂得 | 日一日射一射 | 欧美一级片手机在线观看 | 日本欧美国产精品第一页久久 | 在线亚洲日产一区二区 | 亚洲自偷自偷图片在线高清 | 色综合久久综合网观看 | 亚洲性色视频 | 日韩美女在线观看 | 四虎成人在线 | 欧美视频在线观看xxxx | 四虎永久在线日韩精品观看 | 在线观看日本视频 | 天天操 夜夜操 | 婷婷射丁香 | 亚洲精品中文字幕乱码 | 在线视频欧美日韩 | 亚洲国产系列久久精品99人人 | 亚洲国产成a人v在线 | 伊人网在线视频 | 日韩在线aⅴ免费视频 | 日韩午夜精品 | 亚洲视频免费在线观看 | 亚洲国产日韩综合久久精品 | 亚洲综合图色40p | 亚洲性久久久影院 | 日韩免费看片 | 丝袜 欧美 视频 首页 在线 | 日韩av线观看 | 午夜视频在线网站 | 欧美在线视频免费播放 | 午夜亚洲一区二区福利 | 中文字幕欧美在线观看 | 四虎网址最新 | 亚洲最新在线视频 | 欧美怡红院免费全视频 |