首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 入門心得筆記:存儲引擎選擇、權限精細化、分散式存取、備份原理、緩存、字元集、C API 編譯、協議、NULL 處理、事務隔離級別

     編輯:MySQL 綜合教學

MySQL 入門心得筆記:存儲引擎選擇、權限精細化、分散式存取、備份原理、緩存、字元集、C API 編譯、協議、NULL 處理、事務隔離級別

整理自初學階段的零碎筆記,涵蓋架構選型、運維操作、開發對接十大知識點,適合快速回顧建立整體認知框架。

1. 存儲引擎按業務選型

  • InnoDB:事務、行鎖、外鍵、崩潰恢復、熱備、多核/大記憶體/SSD 友好 → 首選。
  • MyISAM:全文索引 (5.6 前)、只讀/讀多寫少、無事務需求。
  • CSV:外部工具直接讀寫 CSV 檔案。
  • 建表指定:CREATE TABLE t (...) ENGINE=InnoDB; 或 ALTER TABLE t ENGINE=InnoDB;。
  • 查看引擎:SHOW TABLE STATUS FROM db_name;。

2. 權限精細化 (GRANT)

  • 權限存儲於 mysql.user 等系統表。
  • 可精細到欄位級:GRANT SELECT(col1, col2) ON db.tbl TO 'u'@'h';。
  • 分散式存取:不同資料庫實例間可建立帳號互信,配合權限實現跨實例協作。

3. 備份原理先行

  • 邏輯備份 (mysqldump) vs 物理備份 (xtrabackup/快照)。
  • 必須理解一致性快照、Binlog 位置、GTID、恢復流程,才能制定可靠備份策略。

4. 緩存關鍵

  • Query Cache (已在 8.0 移除)、InnoDB Buffer Pool (核心)、Table Open Cache、Thread Cache。
  • 緩存命中率直接決定讀效能,監控 Innodb_buffer_pool_read_requests / Reads。

5. 字元集五層設定

  • Server > Database > Table > Column > Connection
  • 建表指定:CREATE TABLE t (...) ENGINE=InnoDB CHARSET=utf8mb4;
  • 連線協商:SET NAMES utf8mb4; (等同設定 client/connection/results 三者)。
  • 結果集編碼:SET character_set_results = utf8mb4;

6. C API 編譯鏈結

gcc -o app app.c -I/usr/include/mysql -L/usr/lib64/mysql -lmysqlclient -lz -lm
  • lib64 為 64 位系統庫目錄。
  • 協議由驅動封裝,應用層無需手工組裝封包。

7. NULL 處理陷阱

  • 聚合函數無資料返回 NULL:SELECT MIN(col), 'type' AS b FROM empty_tbl → NULL, 'type'。
  • 運算遇 NULL 傳染:5 + NULL = NULL,務必 IFNULL(col, 0)。

8. 字元集診斷指令

SHOW VARIABLES LIKE 'charac%';  -- 顯示所有 character_set_* 變數

9. 事務隔離級別

SHOW VARIABLES LIKE 'tx_isolation';  -- 預設 REPEATABLE-READ
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;  -- 會話級調整

10. 實用片段集錦

  • 系統時間:SELECT NOW();、SELECT CURRENT_DATE;、SELECT UNIX_TIMESTAMP(datetime);
  • 中文查詢:SET NAMES utf8; (舊版) / SET NAMES utf8mb4; (新版)
  • 查詢導出檔案:SELECT * FROM t INTO OUTFILE '/path/file.txt';
  • 連線授權錯誤:Host 'x' is not allowed to connect → 檢查 mysql.user Host 欄位。

將零碎知識點串聯成「引擎選型 → 權限模型 → 備份恢復 → 緩存調優 → 字元集鏈路 → 開發對接 → 運維診斷」完整鏈路,是從入門走向精通的關鍵。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved