熱線電話:13121318867

登錄
首頁精彩閱讀關于大數據的處理的一些經驗
關于大數據的處理的一些經驗
2017-12-31
收藏

1.數據庫的技術上,目前我們公司在研究hadoop分層數據庫,具體了解不多;外面流行的NoSql非關系型數據庫,像亞馬遜、谷歌還有一些日本企業都有自己的NoSql數據庫;

2.傳統關系型數據庫的優化,數據庫層的優化和上層使用的優化。

數據庫層:需要DBA進行優化,減少碎片,進行分區等;

使用層的優化,即優化SQL

從外界因素來看影響SQL有:CPU、RAM、Network、Disk

CPU:SQL的大量order by,大量group by,case when等都會很費CPU,需要CPU進行計算。是否可以使用匯總來減少此問題

RAM:查找的數據量過大,導致內存資源占用過多。

如無where的SQL,select *的SQL,全表掃描等;

頻繁的update、insert都會影響內存,每次對SQL的解析都需要一定的時間和空間。采用綁定變量。

Network:過多的DB連接,頻繁的DB開關,跨庫的關聯,大量數據的導出,復雜的SQL等。

Disk:

大數據量的表,建立索引,保證索引的有效性;

減少大表的insert和delete,會造成磁盤碎片,導致磁盤指針的不連續性;

大表的insert和delete會造成索引的失效,必要時先去掉索引再操作增刪改;

索引其實是一張表,要保證其精簡

索引的建立,最好用在易排序字段,如number,date等,勿varchar;

varchar字段盡量保持長度的一致性,寧可多給出空間;

減少磁盤的讀取次數;

對大表禁止順序性的全表掃描,使用索引;

減少disdinct,用unionall代替union;

Not like,<>,全模糊like,is null,is not null,not in都會使索引失效;

索引上不要使用任何函數,盡量在等號的另一頭使用函數;

SQL的書寫一致,減少解析時間;

選擇最佳的執行計劃,復雜的SQL,不如多個簡單的SQL;

減少嵌套子SQL,使用關聯查詢;

避免笛卡爾積連接;

避免使用*,數據庫需要對*進行一次匹配,會消耗資源,而且并不一定所有的字段都要進行查詢或者寫入,寫入時表結構變化還會導致出錯,所以避免*;

全表刪除,不要使用delete,使用truncate;

全表分頁的效率較低,建議使用分步是分頁;

3.在數據讀取優化到一定程度后,代碼上也可以進行很大的優化。

避免過多的開裝箱,使用值類型;

對引用類型的集合,多使用泛型;

避免循環嵌套,和無休止的遞歸;

避免循環中建立大對象;

對大對象的釋放;

4.邏輯上的優化

在需要查詢大量數據的時候,可以使用分頁;

分頁影響到一些圖標的產生時,可以借助匯總,先展示匯總信息和圖標,然后在進行詳情的鉆??;

時間空間的相互替換。

5.對常用信息的本地化保存,如QQ第一次加載很慢,但后面登陸會很快。


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

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

數據分析師資訊
更多

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