官方文件列舉的 MySQL 核心特性完整清單,涵蓋架構、SQL 功能、儲存引擎、連接器、字元集、管理工具等 40+ 項目。
架構與平台
- 核心多執行緒,自動利用多 CPU
- C/C++/Eiffel/Java/Perl/PHP/Python/Tcl API
- 支援 20+ 作業系統 (Linux/Unix/Windows/Mac/OS/2...)
資料類型 (多達 10 類)
- 數值:TINYINT/SMALLINT/MEDIUMINT/INT/BIGINT (UNSIGNED)、FLOAT/DOUBLE/DECIMAL
- 字串:CHAR/VARCHAR、TINYTEXT/TEXT/MEDIUMTEXT/LONGTEXT、TINYBLOB/BLOB/MEDIUMBLOB/LONGBLOB
- 日期時間:DATE/TIME/DATETIME/TIMESTAMP/YEAR
- 集合:SET (64值)、ENUM (65535值)
SQL 功能亮點
- 單掃描多重聯結 (One-sweep multi-join) 極速 JOIN
- SELECT/WHERE 完整運算子與函數支援 (如
CONCAT、算術、比較、邏輯)
- 高度優化類別庫實作 SQL 函數,查詢初始化後零記憶體分配
- 完整
GROUP BY/ORDER BY + 聚合函數 (COUNT/DISTINCT/AVG/STD/SUM/MAX/MIN)
LEFT OUTER JOIN (ANSI SQL + ODBC 語法)
- 跨資料庫查詢:
SELECT * FROM db1.t1, db2.t2
安全與權限
- 靈活安全的權限/密碼系統,基於主機認證
- 連線時密碼加密傳輸
- Win32 ODBC 2.5 完整支援 (可用 Access 連線)
索引與儲存
- B-tree 索引支援壓縮
- 每表 ≤ 16 個索引,每索引 ≤ 16 欄位/前綴,最大 256 Bytes (可編譯調整)
- 索引可用 CHAR/VARCHAR 前綴
- 固定/可變長度記錄
- 記憶體雜湊表作臨時表
- 大資料庫支援:50M+ 列實戰
- 所有欄位有預設值,INSERT 可只給子集
工具與國際化
- GNU Automake/Autoconf/Libtool 可移植建構
- C/C++ 多編譯器測試、快速記憶體分配器、無記憶體洩漏 (Purify 驗證)
myisamchk:檢查/優化/修復表的快速工具
- 完整 ISO-8859-1 Latin1 支援,斯堪的納維亞字元可用於識別符
- 資料以 Latin1 儲存,比較預設忽略大小寫
- 依 Latin1 排序 (瑞典規則),可擴充排序陣列 (如捷克語)
- 編譯時可指定多種字元集
SQL 標準相容
- 表/欄位別名符合 SQL92
DELETE/INSERT/REPLACE/UPDATE 回傳影響列數
- 函數名不與表/欄位衝突
- 多語言錯誤訊息
連接協定
- TCP/IP、Unix Socket、NT Named Pipe
診斷命令
SHOW:資料庫/表/索引/狀態/變數/程序/權限...
EXPLAIN:查詢執行計畫分析
結語
這份特性清單展現 MySQL 作為輕量、高效、跨平台、標準相容關係資料庫的設計哲學。雖版本迭代 (文件約 3.23/4.0 時代),但核心基因 —— 多執行緒、B-tree、單掃描 JOIN、基於主機的權限、EXPLAIN/SHOW 診斷 —— 持續傳承至 MySQL 8.0 及 MariaDB/Percona 分支。