1、查詢優化技術
1)查詢重用
1、查詢結果的重用(nosql快取查詢結果)(mysql5.6 支援)
2、查詢計畫的重用(減少查詢計畫的生成開銷)
2)查詢重寫規則 (mysql5.6 支援)
1、試圖優化、子查詢優化、
3) 查詢演算法優化(mysql5.6支援)
1、單錶掃瞄演算法
2、量表聯合演算法
3、多表聯合演算法
4)並行查詢優化 (mysql.5.6 不支援)
5)分布式查詢優化 (mysql5.6 不支援)
學習心法 ------ 只需要5步
1、讀書而明理
2、聽講而釋疑
3、練習而掌握
4、實戰中巧遇大造化
5、再:讀書/聽講/交流/思考/實戰。。。。。。。。。。。。。
資料庫調優
資料庫調優勀使資料庫執行的更快,其目標是:
使資料庫 :
有更高的吞吐量
更短的響應時間
被調優的物件是整個資料庫關係系統總體。
查詢語句調優:
被調優的物件是一條查詢語句。(不要只見樹木不見森林,不要只看到sql的調優)。
如何進行調優:
1) 人工調優
主要依賴於人、效率低下、要求操作者完全理解常識依賴的原理,還需要對應用、資料庫管理系統、操心系統及硬體有廣泛的理解。最體現維護人員的價值。
2) 基於案例的調優
根據典型應用配置最優引數案例。
3)、自動調優
商業資料庫,該方案還不完善。
資料庫調優的五個階段:
1、需求分析
2、專案設計
3、開發
4、測試與執行
5、上線和維護
資料庫調優五個階段的主要技術:
1、應用情況的估算
併發、峰值
2、資料系統選型策略
開源資料庫還是商業的、中介軟體、硬體、網路等進行選型。
3、資料模型的設計
3.1 e-r模型設計 非規範可以改善系統查詢效能
3.2 資料邏輯分布策略
目的是減少資料請求的不必要的資料量,把使用者需要的資料返回;可用的技術如分割槽、分表(根據業務的不同進行分庫分表
3.3 資料物理儲存策略
目的是減少io,如啟用壓縮技術,把索引和表的資料儲存分庫,不同的表資料分布於不同的表空間,不同表空間分布在不同的物理儲存上。日誌、索引、表空間等分布在不同的物理儲存上。
3.4 索引: 適當的建立索引。
4、sql設計
編寫正確的、查詢效率高的sql語句。這依賴的主要是「查詢重用」編寫語句的過程中要注意,要有意識地保證sql能利用到索引。
5、資料庫功能的啟用
資料庫為提高效能提供了一些功能,可合理使用,具體如下:
5.1 查詢重用: 根據實際情況進行配置,可快取查詢執行計畫、查詢結果等。
5.2 資料庫引數的設定: 資料緩衝區等、模型系統預執行、進行壓力測試及早發現問題。
6、 系統監控與分析。
6.1 應用系統表現:
收集使用者對應用系統的使用意見、系統存在的問題等,因為這些可能是使用者在第一時間發現的。
6.2 os環境監控
6.3 資料庫內部狀況監控: 如鎖的情況,實時監控資料與歷史進行對比。
6.4 日誌分析: 在資料庫的日誌、作業系統的日誌中找出異常事件,定位問題
3、
查詢優化(MySQL優化查詢)
關聯查詢太多join 設計缺陷或不得已的需求 資料庫伺服器調優及各個引數設定不適當 緩衝 執行緒數等 慢查詢日誌 找出執行速度慢的sql語句 慢查詢的開啟並捕獲 explain 慢sql分析 show profile查詢sql在mysql伺服器裡面的執行細節和生命週期情況 sql資料庫伺服器的引數調...
mysql統計查詢優化 Mysql查詢優化
效能涉及的層面很多,但是在操作層面,主要有表結構設計優化 索引優化和查詢優化 查詢的生命週期大致可以分為,從客戶端 到服務端 在伺服器上解析 生成執行計畫 執行 返回結果給客戶端 sql執行流程 具體優化技巧 1.消除外連線 2.消除子查詢 盡量用join代替子查詢,雖說mysql查詢優化器會進行優...
MySQL優化 查詢優化
在每乙個消耗大量時間的查詢中,都能看到一些不必要的額外操作 某些操作被額外地重複了很多次 某些操作執行得太慢等。優化查詢的目的就是減少和消除這些操作所花費的時間。查詢效能低下最基本的原因是訪問的資料太多。所以需要考慮是否向資料庫請求了不需要的資料 1 多表關聯時,或獲取單錶資料時,盡量避免不加思考地...