java - 定時(shí)任務(wù)輪詢數(shù)據(jù)庫(kù)壓力如何解決
問題描述
有很多定時(shí)任務(wù),而且是分布在不同的服務(wù)器上的。要輪詢數(shù)據(jù)庫(kù)中符合條件(狀態(tài))的數(shù)據(jù),然后在進(jìn)行處理。 這樣成百上千的定時(shí)任務(wù)去輪詢數(shù)據(jù)庫(kù),直接導(dǎo)致數(shù)據(jù)庫(kù)壓力劇增。
這種情況如何處理呢?怎樣減少數(shù)據(jù)庫(kù)壓力。
問題解答
回答1:把相似或類似的輪詢?nèi)蝿?wù)合并,以減少輪詢?nèi)蝿?wù)的數(shù)量
降低輪詢?nèi)蝿?wù)的執(zhí)行頻率
優(yōu)化輪詢?nèi)蝿?wù)內(nèi)部的SQL語(yǔ)句,降低數(shù)據(jù)庫(kù)查詢壓力
平攤輪詢?nèi)蝿?wù)的執(zhí)行時(shí)間,不要都集中在某個(gè)時(shí)間段
不使用輪詢?nèi)蝿?wù)
升級(jí)數(shù)據(jù)庫(kù)
回答2:試試把要輪詢的數(shù)據(jù)id單獨(dú)存放,任務(wù)輪詢id表,然后在根據(jù)id去單條的查詢
回答3:另外數(shù)據(jù)庫(kù)也可以設(shè)置多個(gè)從庫(kù),定時(shí)任務(wù)可以從不同的從庫(kù)里輪詢得到數(shù)據(jù),這樣數(shù)據(jù)庫(kù)的壓力就小很多
相關(guān)文章:
1. mysql 可以從 TCP 連接但是不能從 socket 鏈接2. java - jdbc如何返回自動(dòng)定義的bean3. python - 請(qǐng)問這兩個(gè)地方是為什么呢?4. 事務(wù) - mysql共享鎖lock in share mode的實(shí)際使用場(chǎng)景5. Python處理Dict生成json6. 怎么php怎么通過(guò)數(shù)組顯示sql查詢結(jié)果呢,查詢結(jié)果有多條,如圖。7. 大家都用什么工具管理mysql數(shù)據(jù)庫(kù)?8. javascript - 按鈕鏈接到另一個(gè)網(wǎng)址 怎么通過(guò)百度統(tǒng)計(jì)計(jì)算按鈕的點(diǎn)擊數(shù)量9. 請(qǐng)教一個(gè)mysql去重取最新記錄10. mysql updtae追加數(shù)據(jù)sql語(yǔ)句
