早上運維報障說,一個統計的app nginx返回超時了。
一開始以爲是服務器原因,看了下服務器資源還又很多剩餘資源。
調試源碼。發現有一個for循環,並且底層數據用的是oracle。
因爲這個項目已經很久了,打算優化下這個for循環的代碼。隨即一想,先看下sql語句。發現數據只有200多萬條數據的小表。
卻驚訝地發現查詢條件上沒有加索引。。。。。。表有十幾個字段。佔用磁盤900m+ 。
估計項目上線的時候,測試肯定是沒有問題的。但是當時的研發人員並不會考慮那麼周全,或者是懶得去加索引。
當數據量越來越大的時候,就造成了系統的崩潰,嚴重影響了客戶的體驗。