| 特性 | MyISAM | BDB | Memory | InnoDB | Archive |
|---|---|---|---|---|---|
| 儲存限制 | 無 | 無 | 有 | 64TB | 無 |
| 事務支援 | 不支援 | 支援 | 支援 | 支援 | 不支援 |
| 鎖機制 | 表鎖 | 頁鎖 | 表鎖 | 行鎖 | 行鎖 |
| B-tree 索引 | 支援 | 支援 | 支援 | 支援 | 不支援 |
| Hash 索引 | 不支援 | 支援 | 支援 | 不支援 | 不支援 |
| 全文索引 | 支援 | 不支援 | 不支援 | 不支援(MySQL 5.6+支援) | 不支援 |
| 叢集索引 | 不支援 | 不支援 | 不支援 | 支援 | 不支援 |
| 資料壓縮 | 支援 | 不支援 | 不支援 | 支援 | 支援 |
| 空間使用 | 低 | 低 | N/A | 高 | 極低 |
| 記憶體使用 | 低 | 低 | 中等 | 高 | 低 |
| 批量插入速度 | 高 | 高 | 高 | 低 | 極高 |
| 外鍵支援 | 不支援 | 支援 | 不支援 | 支援 | 不支援 |
每張表對應三個檔案:.frm(定義)、.MYD(資料)、.MYI(索引)。資料與索引可分離存放以分散 I/O。適合讀多寫少、無事務需求的場景。
MySQL 5.5+ 預設引擎,支援 ACID 事務、行級鎖、外鍵、叢集索引。資料與索引存放在同一表空間,寫入效率略低於 MyISAM,但並發效能優異。
(此處省略圖片,請參考官方文檔)
BIN(x)、OCT(x)、HEX(x):進制轉換。FLOOR(x)、ROUND(x,y)、LOG(x,y)、MOD(x,y)。COUNT(col)、MIN(col)、MAX(col)、SUM(col)、AVG(col)。LENGTH(s)、CONCAT(s1,s2...)、TRIM(str)、LEFT(str,x)、RIGHT(str,x)、SUBSTRING()、REPLACE()。NOW()、DATE()、YEAR()、MONTH()、DAY()、HOUR()、MINUTE()、SECOND()、DATE_ADD()、DATE_SUB()、DATEDIFF()。MD5(str)、SHA1(str)、PASSWORD(str)、ENCRYPT(str,salt)。CASE WHEN ... THEN ... ELSE ... END、IF(expr, true_val, false_val)、IFNULL(expr1, expr2)、NULLIF(expr1, expr2)。DATE_FORMAT(date, fmt)、TIME_FORMAT(time, fmt)、FORMAT(number, decimals)。CAST(expr AS type)、CONVERT(expr, type),支援 BINARY, CHAR, DATE, DATETIME, TIME, SIGNED, UNSIGNED 等。VERSION()、USER()、CURRENT_USER()、CONNECTION_ID()、DATABASE()、FOUND_ROWS()、LAST_INSERT_ID()。utf8mb4)。my.ini/my.cnf:[client] default-character-set=utf8mb4[mysql] default-character-set=utf8mb4[mysqld] character-set-server=utf8mb4
collation-server=utf8mb4_general_ciCREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;SET NAMES utf8mb4;。