mysql fulsh mysql 優化流程

2021-10-18 09:20:10 字數 1134 閱讀 7175

1 . 預發跑 sql explain

2. 排除 快取 sql nocache

3. 看一下行數對不對 不對可以用analyze table t 矯正

4. 新增索引 , 索引不一定是最優的 force index 強制走 索引, 不建議使用

5. 存在回表的情況

6. 覆蓋索引避免回表, 不要* ,主鍵 索引

7. 聯合索引,不能無限制建 ,高頻 場景

8. 最左前原則 按照索引定義的字段順序寫sql

9 . 合理安排聯合索引的順序

10. 5.6版本之後, 索引下推, 減少回表次數

11. 給字串 加索引

字首索引

倒序儲存

hash

12 . 資料庫的fush 的時機

1.redo log 滿啦, 修改checkpoint flush 到磁碟

2. 系統 記憶體不足淘汰資料頁

buffer pool 要知道磁碟的io能力, 設定 innodb_io_capacty 設定磁碟的io ps fio測試

innodb_io_capacity 設定低了, 會讓innodb 錯誤估算系統能力,導致髒頁累積

3. 系統空閒的時候,找間隙刷髒頁

4. mysql正常關閉,會把記憶體髒頁 flush到磁碟

13 .inndb刷磁碟速度

1.髒頁比例

2.redolog 寫盤的速度

3.innodb_fulsh_nieighbors 機械磁碟的隨機io不太行 減少隨機io效能大幅提公升 設定為 1最好

4.現在都是ssd了, 設定為0 就好了, 8.0 之後預設為 0

14. 索引字段不要做函式操作,會破壞索引值的有序性,優化器會放棄走樹結構 ,如果觸發隱式轉換 那也會走cast函式 會放棄走索引

15 字符集 不同可能走不上索引, convert 也是函式走不上

pps:

索引 選擇, 1.普通索引,唯一索引,覆蓋索引,最左字首索引

mvcc

1.版本鏈 在聚集索引中,要兩個隱藏列 trx_id roll_pointer

2.讀未提交,(直接讀取最新版本)

3.序列化 (加鎖)

read view (讀已提交, 每次讀取生成乙個)(可重複度, 每一次生成乙個)

網路流的部分優化

只是幫助自己記憶一下。isap應該是一種複雜度比較優秀的最大流演算法。具體優化分為兩部分,都是基於dinic之上的。1.1.1.當前弧優化,這種優化比較顯然,就是對於每一次流,每條邊一定是只經過一次的,那麼這樣就可以將每條流過的變在鏈式前向星中刪掉。2.2.2.高階版分層圖優化。這個現在不是很理解。...

SSIS 資料流優化

一,資料流設計優化 資料流有兩個特性 流和在記憶體緩衝區中處理資料,根據資料流的這兩個特性,對資料流進行優化。1,流,同時對資料進行提取,轉換和載入操作 流,就是在source提取資料時,轉換元件處理資料,同時destination載入資料,資料在不同元件之間,同時被處理。所有的rdbms操作都是同...

Oracle工作流的優化

對於oracle工作流的優化方式主要分兩大類,一類是流程設計上的優化,一類是資料庫效能的優化。流程設計優化 仔細選擇同步處理和非同步處理模式。如果選擇同步處理模式,則在提交後系統立即進行工作流處理,在流程結束前,前端程式將一直處於等待狀 態。如果選擇非同步處理模式,程式提交工作流後控制權立即返回,工...