_ci = Case Insensitive(大小寫不敏感),'a' = 'A'_bin = Binary(二進制比較),'a' != 'A'WHERE txt = 'a':_ci 能匹配 'A',_bin 不能| 特性 | MyISAM | InnoDB |
|---|---|---|
| 事務 | 不支援 | 支援 (ACID) |
| 鎖粒度 | 表鎖 | 行鎖 |
| 外鍵 | 不支援 | 支援 |
| 全文索引 | 支援 (5.6+ InnoDB 也支援) | 5.6+ 支援 |
| COUNT(*) | O(1) 讀元數據 | O(N) 掃描表 |
| AUTO_INCREMENT | 可建聯合索引 | 必須單列索引 |
| DELETE 表 | 重建表 | 逐行刪除 |
| LOAD DATA MASTER | 支援 | 不支援 |
| 崩潰恢復 | 需 REPAIR | Redo Log 自動恢復 |
COUNT(*)、ORDER BY 高頻,MyISAM 不鎖表適用 InnoDB 場景:需事務(如交易、庫存)、需外鍵、高併發寫入且行鎖收益大。
unicode_ci:準確支援 Unicode 排序規則(如德語 ß=ss)、較慢general_ci:簡化比較(逐字節)、速度快、德語 ß=s(不準)general_ci 足夠,新建庫預設推薦
SELECT * FROM books WHERE `book-id` = 'b001'; -- 反引號 ` ` 包裹
SELECT * FROM `book-cate`;
book_id,避免特殊字符| 表 | 作用 |
|---|---|
| user | 全局權限、連接認證 |
| db | 庫級權限 |
| host | 主機級權限(配合 db) |
| tables_priv | 表級權限 |
| columns_priv | 列級權限 |
遇到 SELECT command denied ... for table 'proc' → 需 GRANT SELECT ON mysql.proc TO 'user'@'%';