当前位置: 首页 > 数据分析师 > 数据分析师实战技能 > 数据分析师数据分析 > 关于大数据的处理的一些经验

关于大数据的处理的一些经验

发布时间:2020年09月29日 01:21:37 来源: 点击量:582

【摘要】1 数据库的技术上,目前我们公司在研究hadoop分层数据库,具体了解不多;外面流行的NoSql非关系型数据库,像亚马逊、谷歌还有一些日本企业

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第一次加载很慢,但后面登陆会很快。

分享到: 编辑:wangmin

就业培训申请领取
您的姓名
您的电话
意向课程
点击领取

环球青藤

官方QQ

扫描上方二维码或点击一键加群,免费领取大礼包,加群暗号:青藤。 一键加群

绑定手机号

应《中华人民共和国网络安全法》加强实名认证机制要求,同时为更加全面的体验产品服务,烦请您绑定手机号.

预约成功

本直播为付费学员的直播课节

请您购买课程后再预约

环球青藤移动课堂APP 直播、听课。职达未来!

安卓版

下载

iPhone版

下载
环球青藤官方微信服务平台

刷题看课 APP下载

免费直播 一键购课

代报名等人工服务

课程咨询 学员服务 公众号

扫描关注微信公众号

APP

扫描下载APP

返回顶部