mysql 案例 ~ insert插入慢的場景


一簡介: 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 解決方案: 進行讀寫分離拆分,進一步進行觀察


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM