mysql - 瞬間流量很高的網(wǎng)站,要頻繁的插入數(shù)據(jù)到數(shù)據(jù)庫(kù),應(yīng)該怎么解決這個(gè)問(wèn)題?
問(wèn)題描述
瞬間流量很高的網(wǎng)站,要頻繁的插入數(shù)據(jù)到數(shù)據(jù)庫(kù),怎么才能解決速度慢的問(wèn)題?要用到什么技術(shù)?
問(wèn)題解答
回答1:1、分布式部署的數(shù)據(jù)庫(kù),增加瞬時(shí)插入性能2、如果業(yè)務(wù)允許,采用消息隊(duì)列異步插入3、使用redis之類(lèi)的做緩存,再異步插入數(shù)據(jù)庫(kù)3、對(duì)于插入操作頻繁,又不需要關(guān)聯(lián)查詢的數(shù)據(jù),可以選擇使用mongo這樣非關(guān)系型的數(shù)據(jù)庫(kù)
回答2:如果對(duì)實(shí)時(shí)性要求不是很高的話,可以用redis做一個(gè)中間層接收數(shù)據(jù),然后后臺(tái)定時(shí)或用消息訂閱機(jī)制從redis拉取數(shù)據(jù)并批量寫(xiě)入數(shù)據(jù)庫(kù)。
回答3:考慮優(yōu)化存儲(chǔ)結(jié)構(gòu)2. 有條件考慮多機(jī)多數(shù)據(jù)庫(kù)多進(jìn)程。3. 配連接池,配中間件(消息隊(duì)列)中間數(shù)據(jù)庫(kù)(redis)4. 多線程…
回答4:你可以搜一下類(lèi)似 淘寶每秒14萬(wàn)訂單 之類(lèi)的東西作為借鑒。這個(gè)東西沒(méi)有一成不變的方案。簡(jiǎn)單說(shuō)就是用redis之類(lèi)的服務(wù)端緩存處理請(qǐng)求。
回答5:應(yīng)該還可以考慮下消息隊(duì)列
回答6:加入緩存機(jī)制,做負(fù)載均衡都可以試試
回答7:1 看日志 找到請(qǐng)求過(guò)高的請(qǐng)求地址,先找出原因,看能否避免,是否是必要的操作2 根據(jù)業(yè)務(wù)需求寫(xiě)mysql觸發(fā)器,把這個(gè)工作交給mysql來(lái)做3 使用swoole 異步插入入數(shù)據(jù)庫(kù)4 可以用多線程隊(duì)列 5 數(shù)據(jù)不要直接寫(xiě)入數(shù)據(jù)庫(kù),可以先寫(xiě)入redis
