| 類型 | 存儲特性 | 最大長度 | 適用場景 | 性能 |
|---|---|---|---|---|
| CHAR(n) | 定長,右填充空格 | 255字符 | 固定長度:MD5、UUID、國標代碼 | 查詢快,空間換時間 |
| VARCHAR(n) | 變長,1-2字節長度前綴 | 65,535字節(共享) | 不定長:姓名、標題、描述 | 靈活,節省空間 |
| TINYTEXT | 255字節 | 255 | 極短文本 | 不支持默認值 |
| TEXT | 64KB | 65,535 | 文章、日誌 | 離頁存儲 |
| MEDIUMTEXT | 16MB | 16,777,215 | 長文檔 | 離頁存儲 |
| LONGTEXT | 4GB | 4,294,967,295 | 超大文本 | 離頁存儲 |
關鍵差異:CHAR/VARCHAR支持DEFAULT、索引全長;TEXT族不支持默認值、索引需指定前綴長度、排序/分組僅用前1024字節。
utf8mb4(1-4字節/字符,支持Emoji)utf8mb4_general_ci(不區分大小寫、速度快)、utf8mb4_unicode_ci(Unicode標準、準確)_general_ci,多語言排序敏感用_unicode_ci或_0900_ai_ci(8.0+)| 類型 | 字節 | 有符號範圍 | 無符號範圍 | 適用場景 |
|---|---|---|---|---|
| TINYINT | 1 | -128~127 | 0~255 | 布爾、狀態碼、枚舉 |
| SMALLINT | 2 | -32K~32K | 0~65K | 小範圍計數 |
| MEDIUMINT | 3 | -8M~8M | 0~16M | 中等計數 |
| INT | 4 | -21E~21E | 0~42E | 通用整數、自增ID |
| BIGINT | 8 | -922E~922E | 0~1844E | 大數據ID、時間戳毫秒 |
| FLOAT | 4 | ~7位精度 | - | 科學計算、近似值 |
| DOUBLE | 8 | ~15位精度 | - | 高精度近似 |
| DECIMAL(m,n) | m/2+2 | 精確小數 | - | 金額、價格、比率 |
鐵律:金額類務必用DECIMAL,禁止FLOAT/DOUBLE(二進制浮點誤差)。UNSIGNED擴大正數範圍,ZEROFILL左填0(展示層用)。
| 類型 | 字節 | 範圍 | 精度 | 時區感知 | 適用場景 |
|---|---|---|---|---|---|
| DATE | 3 | 1000-01-01 ~ 9999-12-31 | 天 | 否 | 生日、入職日期 |
| TIME | 3 | -838:59:59 ~ 838:59:59 | 秒 | 否 | 工時、時長 |
| DATETIME | 8 | 1000 ~ 9999 | 秒 | 否 | 業務時間、創建時間 |
| TIMESTAMP | 4 | 1970 ~ 2038 | 秒 | 是 | 日誌、審計、跨時區 |
| YEAR | 1 | 1901 ~ 2155 | 年 | 否 | 年份存儲 |
選型決策樹:
TIMESTAMPDATETIME(6) / TIMESTAMP(6) (5.6.4+)DATETIMEDATE數據類型選型是_schema設計的基因編輯,決定存儲成本、查詢性能、數據正確性、擴展邊界。新項目遵循最小足夠原則,嚴禁VARCHAR(255)通吃、BIGINT濫用、FLOAT存金額。