1. 程式人生 > 其它 >Mysql EXPLAIN 之 key_len

Mysql EXPLAIN 之 key_len

技術標籤:mysql

修改編碼

# 資料庫
alter database employees character set latin1;
alter database employees character set utf8;
alter database employees character set utf8mb4;

# 表
alter table employees character set latin1;
alter table employees character set utf8;
alter table employees character set utf8mb4;
# 欄位 ALTER TABLE employees change first_name first_name varchar(14) CHARACTER SET utf8 COLLATE utf8_general_ci; ALTER TABLE employees change last_name last_name varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci; # 檢視欄位編碼 SHOW FULL COLUMNS FROM employees # 檢視utf8編碼 SHOW CHARACTER SET LIKE 'utf8%'
;

key_len

固定欄位

char(10) 允許NULL = 10 * (utf8mb4=4, utf8=3, gbk=2, latin1=1) +1 (NULL)
char(10) 不允許NULL = 10 * (utf8mb4=4, utf8=3, gbk=2, latin1=1)

變長欄位

varchar(10) 允許NULL = 10 * (utf8mb4=4, utf8=3, gbk=2, latin1=1) +1 (NULL)+2(變長欄位)
varchar(10) 不允許NULL = 10 * (utf8mb4=4, utf8=3, gbk=2, latin1=1) +2 (變長欄位)

demo

在這裡插入圖片描述

latin1

在這裡插入圖片描述

在這裡插入圖片描述

套用公式

# varchar + varchar + int 
(14*1+2)+(16*1+2) + 4 = 38

utf8

在這裡插入圖片描述

套用公式

# varchar + varchar + int 
(14*3+2)+(16*3+2) + 4 = 46+50+4 = 100

utf8mb4

在這裡插入圖片描述

套用公式

# varchar + varchar + int 
(14*4+2)+(16*4+2) + 4 = 58+68+4 = 130