需要對乙個大資料量(數量級在億級別)的表,進行資料統計。
我想到要對資料庫表進行水平切分。
為了後面方便描述,我先假設表裡有三個字段,乙個是使用者的id,乙個是交易的金額,乙個是交易的時間。
但問題是,比如我的統計要求是:要根據指定使用者id,以及一定交易時間區間(比如當前時間之前1個月內),使用者金額的彙總達到一定數額的,我需要獲取滿足這些條件的使用者id列表。
假設設計水平切分,可以根據使用者建立建立先後進行切分(其實針對前面描述的統計要求,根據使用者的id進行切分會更好。但考慮到有些統計項不包括使用者id,所以沒有選擇根據使用者id進行切分)。
當我們對資料完成切分之後,問題就出在對每個切片進行統計這裡,因為我不知道其他的切片裡,該使用者的金額是多少,所以在對每乙個切片進行統計的時候,無法判斷是否滿足統計條件(金額大於指定的值)。
所以就導致了要對每個切片裡所有使用者做group,然後再彙總每個切片的統計結果。
有沒有什麼更好的解決思路?
資料庫優化設計方案
本文首先討論了基於第三正規化的資料庫表的基本設計,著重論述了建立主鍵和索引的策略和方案,然後從資料庫表 的擴充套件設計和庫表物件的放置等角度概述了資料庫管理系統的優化方案。1 引言 資料庫優化的目標無非是避免磁碟i o瓶頸 減少cpu利用率和減少資源競爭。為了便於讀者閱讀和理解,筆者參閱了sybas...
資料庫同步設計方案
需求 目前我們公司開發的系統大部分都涉及到資料傳輸,簡單的系統架構如下,有企業輸入單證資訊,提交到 機關進行審批,將審批的結果返回到企業端,由於企業客戶端系統,和行政審批中心的系統存在多不多的複雜關係 同時又存在大量的資料報文的交換 為了提高整個系統在資料傳輸過程中的可靠性,安全性及時性。我們在中間...
資料庫表的設計方案
1 一對多或者多對一的物件在資料庫裡面如何設定表來儲存資料原理解說當在程式中物件的關係為1對多或者多對1的關係時,在資料庫裡面我們怎樣設計表來儲存資料呢?1 首先分別設計兩個表來儲存兩個物件的基本屬性,不用管他們之間的關係 2 然後再在多的物件的表裡面設定外來鍵來描述兩個表之間資料的關係即可滿足需求...