做一個需求的開發,算是個改造吧。
集成測試過程中,在生產想要找之前做過的數據,執行了以下sql。
select t.* from order_service_log t where t.service_code = '產品過戶' limit 10
當現場的一個測試頭頭在羣裏截圖@全體,問誰執行了這個sql時,頓時感覺大事不妙。
想起執行這個sql時,貌似好幾分鐘都沒執行完。
!!!不會是拉垮了整個生產數據庫吧!!!
然後就是如此。
單看這個sql,並沒有什麼問題,感覺對效率沒太大影響。
但一旦service_code這個字段不是索引,且這個日誌表數量達30萬+,這條簡單的sql就不是這麼簡單了。
但歸根到底,還是日記表定時需要清數據。
而我們書寫查詢語句時,也要注意,最好用帶有索引的條件去查詢,避免用t.*,以及用上時間限制。
還是受職場磋磨地不夠多啊!