| 項目 | CHAR(M) | VARCHAR(M) |
|---|---|---|
| 長度 | 固定 M (0-255) | 可變 0-65535 |
| 儲存 | 右補空格至 M 字節 | 實際長度 + 1/2 字節 |
| 讀取 | 去尾空格 | 保留尾空格 |
| UPDATE | 原地修改、無碎片 | 可能行遷移、產生碎片 |
| 索引 | 固定寬度、極快 | 可變長、稍大 |
CHAR。CHAR 更省 (無長度字節)。VARCHAR 節省空間。CHAR 避免碎片,或 VARCHAR + 定期 OPTIMIZE TABLE。VARCHAR 或 TEXT。stock_name CHAR(8):中文股名固定 4 字 = 8 字節 (utf8mb4 視編碼)。stock_code CHAR(6):滬市 6 位、深市 4 位 → 定 CHAR(6),深市右補空格,查詢 WHERE code = '000001' 自動匹配。VARCHAR(6):滬市佔 7 字節 (6+1),深市 5 字節,但上海股票更多,平均佔用反而更大。VARCHAR(65535) 已覆蓋大多數文本需求,TEXT 僅用於:需超過 64KB、或不想計算精確長度、或歷史相容。