天天看點

一條SQL引發的血案

問題場景: mysql資料庫的配置為8核16G,資料庫單表45k條記錄,通過兩個未加索引的字段進行查詢,傳回的記錄數小于等于1,絕對并發6k,每個SQL的查詢時間為1s。 

出現問題: 資料庫CPU使用率一直處于100%,導緻其他sql操作逾時,應用down掉。實際上不到6k并發cpu使用率就到100%。

解決方法:對涉及的兩個字段加索引,問題解決,相同的問題場景下資料庫CPU基本沒有出現波動。

通過這個小問題,值得深思的地方:

  • 嚴謹。設計、開發、維護等整個流程環節都需要嚴謹。
  • 分工。分工越來越細,環環相扣,一個環節出現問題,很可能就是緻命的。拿此案例來說,伺服器部署架構都沒問題,就是因為這個SQL沒有索引,導緻CPU一直是100%,之外的其它功能也受影響,通路不了。
  • 人品。忠誠度應該是算作人品的一個方面,而不是全部。試問一個工作多年的人,忠誠度非常高,但是沒有一技之長,能算人品好?勤奮好學也應該是人品中一個重要部分。