84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
瞬间流量很高的网站,要频繁的插入数据到数据库,怎么才能解决速度慢的问题?要用到什么技术?
认证0级讲师
1、分散式部署的資料庫,增加瞬時插入效能2、如果業務允許,採用訊息佇列非同步插入3、使用redis之類的做緩存,再異步插入資料庫3 、對於插入操作頻繁,又不需要關聯查詢的數據,可以選擇使用mongo這樣非關係型的資料庫
如果對實時性要求不是很高的話,可以用redis做一個中間層接收數據,然後後台定時或用消息訂閱機制從redis拉取數據並批量寫入數據庫。
考慮最佳化儲存結構2. 有條件考慮多機多資料庫多進程。 3. 配連接池,配中間件(訊息佇列)中間資料庫(redis)4. 多執行緒…
你可以搜尋類似 淘寶每秒14萬訂單 之類的東西作為借鏡。這個東西沒有一成不變的方案。 簡單說就是用redis之類的服務端快取處理請求。
應該還可以考慮下訊息佇列
加入快取機制,做負載平衡都可以試試
1 看日誌找到請求過高的請求地址,先找出原因,看能否避免,是否是必要的操作2 根據業務需求寫mysql觸發器,把這個工作交給mysql來做3 使用swoole 非同步插入入資料庫4 可以用多執行緒佇列5 資料不要直接寫入資料庫,可以先寫入redis
1、分散式部署的資料庫,增加瞬時插入效能
2、如果業務允許,採用訊息佇列非同步插入
3、使用redis之類的做緩存,再異步插入資料庫
3 、對於插入操作頻繁,又不需要關聯查詢的數據,可以選擇使用mongo這樣非關係型的資料庫
如果對實時性要求不是很高的話,可以用redis做一個中間層接收數據,然後後台定時或用消息訂閱機制從redis拉取數據並批量寫入數據庫。
考慮最佳化儲存結構2. 有條件考慮多機多資料庫多進程。 3. 配連接池,配中間件(訊息佇列)中間資料庫(redis)4. 多執行緒…
你可以搜尋類似 淘寶每秒14萬訂單 之類的東西作為借鏡。這個東西沒有一成不變的方案。
簡單說就是用redis之類的服務端快取處理請求。
應該還可以考慮下訊息佇列
加入快取機制,做負載平衡都可以試試
1 看日誌找到請求過高的請求地址,先找出原因,看能否避免,是否是必要的操作
2 根據業務需求寫mysql觸發器,把這個工作交給mysql來做
3 使用swoole 非同步插入入資料庫
4 可以用多執行緒佇列
5 資料不要直接寫入資料庫,可以先寫入redis