mysql進行explain的時候key_len的計算方法

mysql 手冊中沒有關於key_length的詳細介紹,通過試驗驗證了key_length的計算方式。 mysql

  • 當索引字段爲定長數據類型,好比char,int,datetime,若是有是否爲NULL的標記,這個標記須要佔用1個字節。對於變長數據類型,好比:varchar,除了是否爲NULL的標記外,還須要有長度信息,須要佔用2個字節。(當字段定義爲NOT NULL的時候,是否爲NULL的標記將不佔用字節)。
  • 不一樣的字符集,latin1編碼一個字符一個字節,gbk編碼的爲一個字符2個字節,utf8編碼的一個字符3個字節。
  • 建立索引的時候能夠指定索引的長度,例如: alter table test add index uri(uri(30)); 長度30指的是字符的個數,若是爲utf8編碼varchar(255),key_length=30*3+2=92個字節。
相關文章
相關標籤/搜索