MySQL update慢問題解決


最近新做的一個項目要發布,結果在最終測試時候出問題了。后台的MySQL一直CPU使用率居高不行,通過:

show processlist查看到一個SQL很異常,update XX set YY = KK where pK = ?;

這是一個簡單的SQL,可是為什么他可能會影響問題呢。

 

背景:

  MySQL數據庫,MyIsam表,按照時間建立一級分區,按照天建立2級分區。

  程序:Java后台程序,mysql的最新驅動,使用rewriteBatch屬性,批處理提交update語句。

解決:

  通過對比,發現:

  1、當沒有分區存在時候,1000條記錄的更新時間在100-300ms左右,這是可以接受的,注意(在沒有任何優化前提下)

  2、加上分區,立刻5s以上。

因此,猜測就是分區所用的分區列沒有在sql中使用,即使使用了其他索引,也可能搜索所有分區,因此使用:

explain partitions SQL,發現確實是這種情況,於是問題解決。

網上一般的例子都是關於查詢的:

1、http://www.xiaohui.com/weekly/20070307.htm

2、http://www.xiaohui.com/dev/server/20070701-discuz-mysql-cpu-100-optimize.htm


免責聲明!

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



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