一條sql犯下的“血案”

做一個需求的開發,算是個改造吧。

集成測試過程中,在生產想要找之前做過的數據,執行了以下sql。

select t.* from order_service_log t where t.service_code = '產品過戶' limit 10

當現場的一個測試頭頭在羣裏截圖@全體,問誰執行了這個sql時,頓時感覺大事不妙。

想起執行這個sql時,貌似好幾分鐘都沒執行完。

!!!不會是拉垮了整個生產數據庫吧!!!

然後就是如此。

單看這個sql,並沒有什麼問題,感覺對效率沒太大影響。

但一旦service_code這個字段不是索引,且這個日誌表數量達30萬+,這條簡單的sql就不是這麼簡單了。

但歸根到底,還是日記表定時需要清數據。

而我們書寫查詢語句時,也要注意,最好用帶有索引的條件去查詢,避免用t.*,以及用上時間限制。

還是受職場磋磨地不夠多啊!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章