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

MySQL 千行核心筆記:從基礎語法到架構設計、優化實戰與避坑指南

     編輯:MySQL 綜合教學

MySQL 千行核心筆記:從基礎語法到架構設計、優化實戰與避坑指南

這份筆記沉澱自早期 MySQL 學習與生產實戰,雖未持續更新,但覆蓋從安裝部署到高可用架構的核心知識體系,適合系統速查與面試複習。

一、核心知識體系導圖

  1. 服務管理:啟動/停止、跳過權限登入、進程查看
  2. 庫/表操作 (DDL):建庫選項、字符集校對、存儲引擎選擇、分區表、表結構變更
  3. 數據操作 (DML):增刪改查、多表連接、子查詢、UNION、導入導出
  4. 字符集與校對:多層級設定、客戶端連接三件套、SET NAMES
  5. 數據類型選型:整數/浮點/定點、字符/二進制、日期時間、枚舉/集合、IP 存儲最佳實踐
  6. 約束與範式:PK/UK/FK/NN/Default/AI/Comment、1NF~3NF 範式實踐
  7. 查詢優化:EXPLAIN 解讀、索引類型、覆蓋索引、LIMIT 深分頁優化、查詢快取 (舊版)
  8. 事務與鎖:ACID、隔離級別 (RC/RR)、MVCC、行鎖/表鎖/間隙鎖、死鎖排查
  9. 視圖/觸發器/存儲程序:安全邊界、業務封裝、DELIMITER、SIGNAL
  10. 備份恢復:mysqldump 邏輯備份、xtrabackup 物理熱備、PITR、GTID 主從
  11. 高可用架構:MHA、MGR、Orchestrator、ProxySQL、VIP/Keepalived
  12. 效能調優:InnoDB 參數、慢查詢分析、Schema 設計、硬體規劃

二、高頻實戰金句 (隨時可用)

  • 字符集:全鏈路 utf8mb4,連接層 SET NAMES utf8mb4,庫表 CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci。
  • 類型選型:INT UNSIGNED 存 IP,DECIMAL(19,4) 存金額,DATETIME 存業務時間,TIMESTAMP 存修改時間 (自動更新)。
  • 索引原則:最左前綴、覆蓋索引、避免函數列、COUNT(*) 不數列、LIMIT 1 優化存在性檢查。
  • 事務隔離:高併發首選 READ COMMITTED + Row Binlog,減少間隙鎖、提升並發。
  • 雙一模式:核心庫 innodb_flush_log_at_trx_commit=1, sync_binlog=1,零丟失、零不一致。
  • 備份策略:每日全備 + Binlog 增備,定期演練恢復,RTO/RPO 量化指標。
  • 大表變更:pt-online-schema-change / gh-ost 線上無鎖 DDL。

三、避坑清單 (血淚教訓)

四、進階學習路徑建議

  1. 官方文檔精讀:InnoDB 架構、鎖機制、優化器、複制協議。
  2. 源碼級理解:buf_pool、trx_sys、log_sys 核心模組。
  3. 工具鏈精通:pt-toolkit、sys schema、PM2/MySQL Exporter 監控體系。
  4. 架構演進:單機 → 主從 → MHA → MGR (Group Replication) → 分庫分表/HTAP (TiDB/OceanBase)。

筆記已同步至 GitHub (私有倉庫),持續沉澱中。MySQL 學無止境,願與君共勉。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
坑點後果規避
utf8` 偽 utf8Emoji/生僻字截斷全鏈路 utf8mb4
VARCHAR(255)` 盲目用索引長度超限、內存浪費按實際業務長度定義
DELETE` 大事務不分批Undo Log 爆漲、主從延遲、鎖升級分批 500~1000 行,間隔睡眠
SELECT *` 生產用網路/IO 擴大、覆蓋索引失效顯式列出所需列
隱式類型轉換索引失效、全表掃描WHERE 列與參數類型一致
從庫 read_only=0誤寫入導致主從不一致強制 read_only=1,僅管理帳號 SUPER 權限可寫
無 relay_log_purge=0` 配合 MHARelay Log 被清理、差異無法修復MHA 環境必開