SHOW ENGINES\G; -- 所有引擎支援情況 SHOW VARIABLES LIKE 'have_%'; -- 編譯時是否包含 SHOW VARIABLES LIKE 'storage_engine'; -- 當前預設引擎 -- 修改預設引擎(my.ini) [mysqld] default-storage-engine=INNODB
圖形化向導安裝時:Multifunctional Database → InnoDB;Non-Transaction → MyISAM。
| 類型 | 字節 | 有符號範圍 | 無符號範圍 |
|---|---|---|---|
| TINYINT | 1 | -128 ~ 127 | 0 ~ 255 |
| SMALLINT | 2 | -32768 ~ 32767 | 0 ~ 65535 |
| MEDIUMINT | 3 | -8388608 ~ 8388607 | 0 ~ 16777215 |
| INT / INTEGER | 4 | -2147483648 ~ 2147483647 | 0 ~ 4294967295 |
| BIGINT | 8 | -9.22e18 ~ 9.22e18 | 0 ~ 1.84e19 |
查看細節:HELP TINYINT; 等。
| 類型 | 字節 | 精度/用途 |
|---|---|---|
| FLOAT | 4 | 單精度,約 7 位有效數字 |
| DOUBLE | 8 | 雙精度,約 15 位,需較高精度時選擇 |
| DECIMAL(M,D) / DEC(M,D) | M+2 | 精確定點數,M 總位數(含小數點)、D 小數位,**金額首選** |
| BIT(N) | 1~8 | 位域,N=1~64 |
例:DECIMAL(18,4) → 1 位小數點 + 4 位小數 = 13 位整數。
| 類型 | 字節 | 範圍/格式 | 典型用途 |
|---|---|---|---|
| DATE | 4 | 1000-01-01 ~ 9999-12-31 | 生日、入職日期 |
| DATETIME | 8 | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 | 通用時間戳 |
| TIMESTAMP | 4 | 1970-01-01 ~ 2038-01-19,時區感知 | 自動記錄創建/更新時間 |
| TIME | 3 | -838:59:59 ~ 838:59:59 | 時長、鬧鐘 |
| YEAR | 1 | 1901 ~ 2155 | 僅需年份,節省空間 |
超出範圍會插入「零值」(0000-00-00 等)。
| 類型 | 最大長度 | 特點 | 編碼佔用 |
|---|---|---|---|
| CHAR(M) | 255 字符 | 定長,右側補空格 | UTF8: 1漢字=3B, GBK: 2B |
| VARCHAR(M) | 65535 字符 | 變長,1-2 字節存長度 | 同上 |
| TINYTEXT | 255 B | 不指定長度 | — |
| TEXT | 64 KB | — | — |
| MEDIUMTEXT | 16 MB | — | — |
| LONGTEXT | 4 GB | — | — |
| 類型 | 對應文本類型 | 用途 |
|---|---|---|
| BINARY / VARBINARY | CHAR / VARCHAR | 存儲二進制(圖片、加密數據),按字節比較 |
| TINYBLOB / BLOB / MEDIUMBLOB / LONGBLOB | TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXT | 大對象存儲(圖片、音視頻) |
選型原則:**文本用 TEXT 系,二進制用 BLOB 系**;超過 64KB 建議用 MEDIUM/LONG 並考慮對象存儲外部化。