承接上篇架構規劃,本文深入備份腳本自動化、資料恢復策略、應用層設計原則、SQL 優化技巧、資料表拆分策略等實戰主題。
/home/mysql/bin/mysqldump -S /data/app_1/mysql.sock -u mysql db_name | gzip -f > /path/to/backup/db_name.`date +%w`.dump.gz
15 4 * * * /home/mysql/bin/mysqldump -S /data/app_1/mysql.sock -u mysql db_name | gzip -f > /path/to/backup/db_name.`date +\%w`.dump.gz
注意: Crontab 中 % 需轉義為 \%;選在負載最低的凌晨 4-6 點執行。
-S socket 改為 -h IP 遠端直備。硬碟壽命最短。升級作業系統或硬體時:裝好新機 → 掛載資料盤(硬碟2) → 重新加入啟動腳本 → 服務即恢復。
zcat backup.gz | mysql -u root -p db_name若可用非資料庫方案替代(如計數器用 Web Log 分析),優先移除資料庫依賴。
簡單 Key-Value 結構可用 HEAP (Memory) 表,效能極高(適合線上使用者、暫存日誌),但斷電會丟資料。
實測將 InnoDB 改為 MyISAM,效能提升 20 倍(無交易需求時)。僅在嚴格商業邏輯/交易完整性時才需 InnoDB/Oracle。
分離 Web 與 DB 伺服器,MySQL 獨享記憶體,可大幅增加 key_buffer(如 32MB vs 預設 8MB),提升索引快取命中率。
pconnect 減少建立連線開銷,但會佔用固定連線槽,需配合連線池機制平衡。
CHAR, INT) → 主表(固定長度,掃描快)VARCHAR, TEXT, BLOB) → 副表INT 別用 BIGINT;能用 CHAR 別用 VARCHAR(固定長度優化)。NOT NULL 預設值優於 NULL(節省位元圖空間)。ENUM 替代常用字串欄位(儲存為數字,極省空間)。備份自動化、冷熱分離、多實例分流、專用 DB 伺服器、欄位精簡設計,構成高效能 MySQL 運維的完整體系。持續監控、定期審查 Slow Query Log、EXPLAIN 執行計畫,方能長治久安。