第六章 查詢效能優化

2022-07-08 02:24:08 字數 425 閱讀 4141

如果查詢是乙個任務,那麼它由一系列子任務組成,每個子任務都會消耗時間,優化查詢其實就是優化子任務 要麼消除一些子任務;要麼減少一些子任務執行的次數;要麼加快子任務的執行速度

查詢效能低下的最基本原因就是訪問的資料太多,可以這樣分析:

如果發現掃瞄了大量資料,卻只返回少量的資料行,可以這樣優化

太多的表會涉及關聯操作,已經說了,關聯操作很耗費資源,mysql會掃瞄很多沒有必要的資料行 可以通過反正規化,增加一些冗餘字段,來減少表的連線 或者不要把錶拆的很小

只返回必要的列:最好不要使用 select * 語句

只返回必要的行:使用 limit 語句來限制返回的資料

快取重複查詢的資料:使用快取可以避免在資料庫中進行查詢,特別在要查詢的資料經常被重複查詢時,快取帶來的查詢效能提公升將會是非常明顯的

使用覆蓋索引

高效能MySQL 第六章查詢效能優化 查詢優化

查詢的生命週期下一步 將乙個sql轉換成乙個執行計畫,mysql再依照這個執行計畫和儲存引擎進行互動 解析sql 預處理 優化sql執行計畫 通過關鍵字將sql語句進行解析 解析器將使用mysql語法規範驗證解析查詢,生成解析樹,預處理器據規則檢查解析樹是否合法 優化器將語法樹從眾多執行方式中找到b...

mysql第六章 第六章 mysql日誌

第六章 mysql日誌 一 錯誤日誌 錯誤日誌的預設存放路徑是 mysql 存放資料的地方 hostname.err 1.修改錯誤日誌存放路徑 mysqld log error data mysql mysql.log 2.檢視配置命令 show variables like log error 3...

高效能MySQL 第六章

查詢優化 索引優化 庫表結構優化 優化查詢嗎,實際上是優化其子任務。優化查詢 1。消除子任務 2。減少子任務執行次數 3。讓子任務執行的更快 查詢效能低下最基本的原因是訪問的資料太多。1 返回的結果 limit,避免返回不需要的資料 而不是返回全部結果集 select 是否需要返回全部列?2 掃瞄的...