本文系統梳理 MySQL 安裝連接、庫表 DDL、數據類型選型、備份恢復、優化核心思想,構建完整知識骨架。
# 連接
mysql -u root -p
# 顯示庫/表
SHOW DATABASES; USE db; SHOW TABLES;
# 庫操作
CREATE DATABASE db CHARSET utf8mb4;
SHOW CREATE DATABASE db;
ALTER DATABASE db CHARSET gbk;
DROP DATABASE db;
| 分類 | 類型 | 存儲/範圍 | 選型建議 |
|---|---|---|---|
| 整數 | TINYINT | 1B, -128~127 / 0~255 | 標誌位、極小計數 |
| SMALLINT | 2B, -32768~32767 | 小範圍 ID/計數 | |
| MEDIUMINT | 3B, -8388608~8388607 | 中等 ID | |
| INT | 4B, -21E~21E | 通用主鍵/外鍵首選 | |
| BIGINT | 8B, ±9E18 | 巨大 ID/雪花算法 | |
| 浮點/定點 | FLOAT(M,D) | 4B, 單精度 | 科學計算、非精確金額 |
| DOUBLE(M,D) | 8B, 雙精度 | 高精度科學計算 | |
| DECIMAL(M,D) | M+2B, 精確定點 | 金額/價格必用 | |
| 字符串 | CHAR(N) | N 字節定長 | 固定長度代碼(MD5、UUID) |
| VARCHAR(N) | 實際長度+1/2B | 變長文本首選 | |
| TEXT/BLOB | 64KB~4GB | 大文本/二進制 | |
| ENUM/SET | 1/8B | 固定值集合(狀態、標籤) | |
| 日期時間 | DATE | 3B, 1000-01-01~9999-12-31 | 生日、入職日期 |
| DATETIME | 8B, 秒精度,無時區 | 業務時間戳 | |
| TIMESTAMP | 4B, 1970~2038,UTC 存儲 | 自動更新時間、跨時區 |
# 邏輯備份
mysqldump -u root -p db > dump.sql
mysqldump -u root -p -d db > schema.sql # 只結構
mysqldump -u root -p -t db > data.sql # 只數據
# 恢復
mysql -u root -p db < dump.sql
# 或客戶端內
SOURCE /path/dump.sql;
以時間換空間,或以空間換時間。
INT/BIGINT AUTO_INCREMENT,避免 UUID/字符串主鍵導致頁分裂。SELECT 顯式列名,禁用 *。long_query_time=1~2。ANALYZE/OPTIMIZE TABLE。掌握「連接 -> 庫表 -> 類型 -> 備份 -> 優化原則」五大塊,即可勝任 MySQL 日常開發與初級運維。後續深入請學習:事務隔離級別、鎖機制、InnoDB 架構、主從復制、分庫分表、性能調優實戰。