關於mysql index length

這篇文章是我對explain出來之後index的長度產生的一個疑問,然後刨根問底之後總結下來的。

具體可見:http://topic.csdn.net/u/20100727/14/9a63689e-7fdc-4b33-b215-7d08b2aef569.html

 

總結如下:

一、關於utf8

UTF-8   is   the   8-bit   encoding   of   Unicode.   It   is   a   variable-width   encoding   and   also   a
strict   superset   of   7-bit   ASCII.   A   strict   superset   means   that   each   and   every   character   in   7-bit   ASCII   is   available   in   UTF-8   with   the   same   corresponding   codepoint   value.
One   Unicode   character   can   be   1   byte,   2   bytes,   3   bytes   or   4   bytes   in   this   encoding.
Characters   from   the   European   scripts   are   represented   in   either   1   or   2   bytes;
characters   from   most   Asian   scripts   are   represented   in   3   bytes,   while   supplementary
characters   are   represented   in   4   bytes.

二、When a nullable column is indexed, it requires an extra  byte per entry

 

因此,當一個char(4)的索引,它的index length是3*4+1=13

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章