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

MySQL 學習筆記 8:效能優化核心清單

     編輯:MySQL 綜合教學

一、 狀態監控指標

SHOW STATUS LIKE 'Connections';   -- 連線總數
SHOW STATUS LIKE 'Uptime';         -- 運行秒數
SHOW STATUS LIKE 'Slow_queries';   -- 慢查詢數
SHOW STATUS LIKE 'Com_select';     -- 查詢次數
SHOW STATUS LIKE 'Com_insert';     -- 插入次數
SHOW STATUS LIKE 'Com_delete';     -- 刪除次數

二、 查詢分析與索引優化

  • EXPLAIN SELECT ... / DESCRIBE SELECT ...:解析執行計畫。
  • LIKE 索引失效: LIKE '%abc%'(前導萬用字元)不走索引;LIKE 'abc%' 走索引。
  • 多欄索引最左前綴: INDEX(name, sex) 需查詢含 name 才生效。
  • OR 條件: 兩側欄位皆需有索引,否則全表掃描。

三、 資料庫結構優化

  • 大表垂直拆分(冷熱欄位分離)。
  • 引入中間表預聚合高頻統計。

四、 插入速度優化

  • 大量匯入前:ALTER TABLE t DISABLE KEYS; 禁用索引(MyISAM)。
  • SET UNIQUE_CHECKS=0; 關閉唯一檢查。
  • LOCK TABLES t WRITE; 鎖表批量寫入,一次刷新索引緩衝。
  • 優先 LOAD DATA INFILE,次之合併 INSERT ... VALUES (...),(...)。
  • INSERT LOW_PRIORITY / DELAYED / HIGH_PRIORITY 控制併發優先級。

五、 表維護指令

指令用途
ANALYZE TABLE t更新索引統計資訊(優化器決策依據)
CHECK TABLE t檢查表錯誤(支援 InnoDB/MyISAM/View)
OPTIMIZE TABLE t整理碎片、回收空間(執行期間鎖表)

六、 查詢快取

-- 檢查是否開啟
SHOW VARIABLES LIKE '%query_cache%';
-- 使用快取
SELECT SQL_CACHE * FROM t;
-- 禁用快取
SELECT SQL_NO_CACHE * FROM t;

表異動即失效該表快取,適合「讀多寫少」場景。

七、 多表查詢與設計原則

  • 優先定長欄位(CHAR),次之變長(VARCHAR)。
  • 熱點表定期 OPTIMIZE TABLE。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved