91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何快速處理數據庫中大量數據

發布時間:2021-06-28 16:20:57 來源:億速云 閱讀:405 作者:chen 欄目:大數據

本篇內容主要講解“如何快速處理數據庫中大量數據”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何快速處理數據庫中大量數據”吧!

背景

  • 將數百張數據結構相同的表(用Tn代表),合并至一張表(用C代表)

  • T表數據量分布很不均衡,少至一位數,多至幾十萬

  • T表間沒有業務關聯

  • C表結構在T表結構的基礎上增加了幾個字段,無法使用INSERT INTO (SELECT * FROM)

  • 數據總量約300萬,經單進程測試,處理速度約500/s,預估耗時約100min

目標

最大化提升數據處理速度,將耗時降至10min左右,此時C表的寫入速度約5000/s。

方案演進

方案一

因為T表間沒有業務關聯,所以每張表都可以單獨處理。

將T表按數據量排序,每個進程處理N張表,盡量平衡各進程的負載。

存在的問題:T表的數據量分布極為不均衡,有幾張表數據量在70萬左右,最終耗時約為(70萬/500)s,瓶頸問題嚴重。

方案二

方案一 的的基礎上,以 表+數據 的維度做并行處理,可以解決大表瓶頸問題。

存在的問題:代碼實現較復雜,需要考慮

  • 每張T表的數據量

  • 對大數據量的T表進行分割

  • 避免數據重復處理

方案三

借助 Redis 的 pub/sub 機制,實現生產和消費的分離。

  • 生產端負責將T表的 表名+ID 均衡發布至不同的channel,channel數量和進程數一致。

  • 消費端每個進程訂閱不同的channel,讀取表名+ID,將表名+ID對應的數據寫入C表。

方案四

方案三的變體,借助 Redis 的 List,實現生產和消費的分離。

  • 生產端負責將T表的 表名+ID 寫入List

  • 消費端讀取List,將 表名+ID 對應的數據寫入C表。

本方案相比 方案三 的優勢在于代碼邏輯比較簡潔,生產端和消費端均不需要做負載均衡。消費端能者多勞,多個消費進程同步完成作業。

實現細節

最終采用方案四

生產端

依次讀取T表數據,將 表名+ID 寫入List。需要注意List支持批量寫入,每次寫入100條數據,寫入速度約50000/s。

消費端

單個進程的消費速度約300/s,起10個消費進程,處理速度可以達到約3000/s。如果數據庫的寫入速度允許,可適當增加消費進程數量。

到此,相信大家對“如何快速處理數據庫中大量數據”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安康市| 仙游县| 嘉鱼县| 万荣县| 建昌县| 西盟| 内黄县| 龙海市| 托克托县| 洛隆县| 拜城县| 昌都县| 土默特左旗| 湛江市| 克拉玛依市| 抚州市| 安丘市| 大邑县| 新津县| 盐亭县| 大悟县| 金门县| 镇沅| 开江县| 靖江市| 田林县| 安化县| 桐城市| 昔阳县| 洛隆县| 北安市| 西宁市| 福鼎市| 和田县| 乐平市| 扶风县| 昆山市| 昭平县| 蓝田县| 石林| 额济纳旗|