熱線電話:13121318867

登錄
首頁精彩閱讀如何進行大量數據需要統計的數據庫設計_數據分析師
如何進行大量數據需要統計的數據庫設計_數據分析師
2015-01-01
收藏

如何進行大量數據需要統計的數據庫設計_數據分析師


數據越大查詢越慢,這個是必然的的,使用緩存可以提升速度,但是不能實時。。。最佳解決方案就是多級報表。。。
比如,如果要統計全國2000多個縣市數據,就要遍歷2000個點。。如果中間加個省級報表,,這樣全國報表就可以建立在30多個省級報表匯總就可以了。。。 
在省級報表基礎上,可以仿照軍區方式,對全國劃區,比如7個大區,這樣,統計全國報表只要遍歷7個點啦。。
所以,我覺得比較好的方式就是多級報表,推薦  全國》》區域》》省》》市縣不過我想更加通用的方案是 建立業務級別的索引。。
1. 業務級別的索引 1
2. 創建索引可以大大提高系統的性能。 1
3. 索引的實現 2
3.1. 通常使用B樹及其變種B+樹。(需要排序) 2
3.2. 使用hash 2
4. 業務索引的存儲 2
5. 索引的實現方式優化 2
5.1. 增量索引 2
6. 增加索引也有許多不利的方面。 2

1.業務級別的索引

大數據量統計下的統計非常慢。緩存可以部分解決這個問題,也可以緩解這個問題,但是緩存往往不能實時查詢。多級關聯查詢也比較麻煩。。

解決思路,就是仿照數據庫,建立業務級別的索引。。

默認數據庫只能建立列的索引,,只有oracle支持函數索引,mysql ,mssql都不支持函數索引
至于業務索引,只能自己實現了。。

2.創建索引可以大大提高系統的性能。
第一,通過創建唯一性索引,可以保證數據庫表中每一行數據的唯一性。
第二,可以大大加快數據的檢索速度,這也是創建索引的最主要的原因。
第三,可以加速表和表之間的連接,特別是在實現數據的參考完整性方面特別有意義。
第四,在使用分組和排序子句進行數據檢索時,同樣可以顯著減少查詢中分組和排序的時間。
第五,通過使用索引,可以在查詢的過程中,使用優化隱藏器,提高系統的性能。 

3.索引的實現
3.1.通常使用B樹及其變種B+樹。(需要排序)
3.2.使用hash

4.業務索引的存儲
可以使用表來存儲。。。Oracle可以建立函數索引,,但業務索引需要使用編程語言代碼來計算結果,最后把結果存儲到索引里面,建立專門的索引存儲表。。。

5.索引的實現方式優化
5.1.增量索引
6. 增加索引也有許多不利的方面。
第一,創建索引和維護索引要耗費時間,這種時間隨著數據量的增加而增加。
第二,索引需要占物理空間,除了數據表占數據空間之外,每一個索引還要占一定的物理空間,如果要建立聚簇索引,那么需要的空間就會更大。
第三,當對表中的數據進行增加、刪除和修改的時候,索引也要動態的維護,這樣就降低了數據的維護速度
但從數據庫角度,做集群。  建議用hadoop.

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢