記一次SQL語句的問題導致的生產上出現大問題的經歷

2021-09-22 21:31:29 字數 408 閱讀 5849

由於sql語句寫錯的問題,導致生產上出現問題。

**如下:

public listfindbya(string a)

return list;

}

由於這裡是用jpa來實現sql語句的,而我在呼叫這個方法時候,傳進去之前,a沒有進行null判斷,導致a有可能會傳乙個null進去,從而導致引擎放棄使用索引而進行全表掃瞄。

舉個例子:

select id from t where num is null
最終解決方案:在呼叫dao層之前的service層對a值是否為空進行判斷和控制,才終於解決這個問題。

好吧,下次要注意這種情況。而且自己需要去了解一下sql的調優,盡量杜絕這種上了生產才出現問題的情況再發生。

記一次Redis bitmap導致的miss問題

redis bitmaps 基礎概念 redis 記憶體淘汰機制 大致需求 指令碼批量匯入使用者資料到redis中,使用bitmap標記使用者是否在匯入的白名單中。使用者量級 億。key使用了分片處理,把key分成了10w個,每個key占用 1億 10w 1000 個bit。理想是key1用於標記u...

記一次Orika導致的OOM

有乙個專案執行一段時間後就會出現oom,下面梳理下尋找問題根源的方法 某一天,乙個好久沒動過的服務崩掉了,top檢視程序占用cpu高達700 按照top,jstack一條龍查詢導致異常的執行緒 這裡沒看到什麼異常,把堆檔案dump到本地進行分析 看到hashmap將近佔了記憶體大小的50 開始尋找專...

記一次Excel匯出導致記憶體耗盡的問題

php fatal error allowed memory size of 298844160 bytes exhausted tried to allocate 262144 bytes 一開始首先想到是excel匯出時很吃記憶體,資料一多就容易將記憶體耗盡,於是先從 上做優化,取完資料後將無用...