mysql 案例 insert插入慢的場景

2021-09-29 14:19:26 字數 770 閱讀 9629

一簡介: insert出現慢日誌中,應該怎麼檢測呢

二 理解:事務提交延遲,一般出現在寫日誌延遲的情況下,會有幾種可能

場景:1 rr模式下,insert等待gap lock鎖導致的

2 insert等待mdl鎖導致

3 表存在外來鍵約束,耗時在外鍵檢測上

4 表沒有主鍵

5 表中含有blob/text和大varchar這種大字段

6 半同步複製的延遲導致插入延遲等待

7 db伺服器io壓力較大,導致排隊,iowait很高 

1 併發insert的執行緒較多

2 併發select的執行緒較多

8 磁碟空間不足導致插入延遲等待

9  優化task慢sql,因為慢sql同樣會搶占你的io/cpu資源

三 案例:

1 描述:線上慢日誌定期會出現insert慢日誌,大概1s左右,非常奇怪

2 排查思路:

1 慢日誌除了insert語句,並沒有大表掃瞄的慢查詢->排查慢查詢的干擾

2 觀察binlog生成量,非常少,嘗試調整sync_binlog引數,並沒效果->排查binlog重新整理的干擾

3 嘗試調整innodb_flush_commit引數,並沒有效果->排查redo重新整理的干擾

4 檢視innodb_buffer_pool的命中率,檢視髒頁重新整理頻率效果

5 觀察慢日誌insert發生時間,大多發生在整點和半點,檢視對應的qps圖,發現對應的select併發非常高,找到了原因 

3 解決方案: 進行讀寫分離拆分,進一步進行觀察

MySQL使用INSERT插入多條記錄

mysql使用insert插入多條記錄,應該如何操作呢?下面就為您詳細介紹mysql使用insert插入多條記錄的實現方法,供您參考。看到這個標題也許大家會問,這有什麼好說的,呼叫多次insert語句不就可以插入多條記錄了嗎!但使用這種方法要增加伺服器的負荷,因為,執行每一次sql伺服器都要同樣對s...

insert 插入資料

語法格式 insert into 表名稱 欄位名稱1,欄位名稱2 values 值1,值2,建立備份表myemp create table myemp as select from emp 標準語法 對於沒有資料的列就不寫進欄位列表 insert into myemp empno,ename,job...

插入資料 INSERT

顧名思義,insert是用來插入行到資料庫表的 插入可以用幾種方式使用 插入完整的行 插入行的一部分 插入多行 插入某些查詢結果 分析 此例子為插入乙個新客戶到customers表,如果某個列沒有值,應該使用null 表允許該值為空 第一列cust id也為null,因為這是自動增量 上面的語法很簡...