您好,登錄后才能下訂單哦!
小編給大家分享一下explain執行計劃中key_len計算規則是怎么樣的,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
它的規則如下:
1.所有的索引字段,如果沒有設置not null,則需要加一個字節。
2.定長字段,int占四個字節、date占三個字節、char(n)占n個字符。
3.對于變成字段varchar(n),則有n個字符+兩個字節。
4.不同的字符集,一個字符占用的字節數不同。latin1編碼的,一個字符占用一個字節,gbk編碼的,一個字符占用兩個字節,utf8編碼的,一個字符占用三個字節。
舉例說明:
mysql> desc person;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | varchar(100) | NO | PRI | | |
| name | varchar(100) | YES | MUL | NULL | |
| age | int(10) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
查看索引情況:
mysql> show index from person;
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| person | 0 | PRIMARY | 1 | id | A | 2 | NULL | NULL | | BTREE | | |
| person | 1 | idx_name | 1 | name | A | 2 | NULL | NULL | YES | BTREE | | |
+--------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
2 rows in set (0.00 sec)
mysql> explain select name from person;
+----+-------------+--------+-------+---------------+----------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------+-------+---------------+----------+---------+------+------+-------------+
| 1 | SIMPLE | person | index | NULL | idx_name | 103 | NULL | 2 | Using index |
+----+-------------+--------+-------+---------------+----------+---------+------+------+-------------+
1 row in set (0.00 sec)
根據以上計算規則:
所有的索引字段,如果沒有設置not null,則需要加一個字節
對于變成字段varchar(n),則有n個字符+兩個字節
因此:key_len=100+2+1=103
以上是“explain執行計劃中key_len計算規則是怎么樣的”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。