首页
技术笔记
网址导航
Json在线解析
二维码
Ip地址查询
在线流程图
新用户注册
|
会员登录
在线工具
开发笔记
毒鸡汤
网址导航
免费在线流程图
14赞
131
当前位置:
开发笔记
>
数据库
> 正文
个人经验总结:处理海量数据的经验和技巧(2)_MySQL-mysql教程
作者:路人甲 | 2021-08-27 15:14
个人经验总结:处理海量数据的经验和技巧(2)
bitsCN.com 虚拟的内存则增加为 4096*6 + 1024 = 25600 M,解决了数据处理中的内存不足问题。
七、分批处理
海量数据处理难因为数据量大,那么解决海量数据处理难的问题其中一个技巧是减少数据量。可以对海量数据分批处理,然后处理后的数据再进行合并操作,这样逐个击破,有利于小数据量的处理,不至于面对大数据量带来的问题,不过这种方法也要因时因势进行,如果不允许拆分数据,还需要另想办法。不过一般的数据按天、按月、按年等存储的,都可以采用先分后合的方法,对数据进行分开处理。
八、使用临时表和中间表
数据量增加时,处理中要考虑提前汇总。这样做的目的是化整为零,大表变小表,分块处理完成后,再利用一定的规则进行合并,处理过程中的临时表的使用和中间结果的保存都非常重要,如果对于超海量的数据,大表处理不了,只能拆分为多个小表。如果处理过程中需要多步汇总操作,可按汇总步骤一步步来,不要一条语句完成,一口气吃掉一个胖子。
九、优化查询SQL语句
在对海量数据进行查询处理过程中,查询的SQL语句的性能对查询效率的影响是非常大的,编写高效优良的SQL脚本和存储过程是数据库工作人员的职责,也是检验数据库工作人员水平的一个标准,在对SQL语句的编写过程中,例如减少关联,少用或不用游标,设计好高效的数据库表结构等都十分必要。笔者在工作中试着对1亿行的数据使用游标,运行3个小时没有出结果,这是一定要改用程序处理了。
十、使用文本格式进行处理
对一般的数据处理可以使用数据库,如果对复杂的数据处理,必须借助程序,那么在程序操作数据库和程序操作文本之间选择,是一定要选择程序操作文本的,原因为:程序操作文本速度快;对文本进行处理不容易出错;文本的存储不受限制等。例如一般的海量的网络日志都是文本格式或者csv格式(文本格式),对它进行处理牵扯到数据清洗,是要利用程序进行处理的,而不建议导入数据库再做清洗。
十一、定制强大的清洗规则和出错处理机制
海量数据中存在着不一致性,极有可能出现某处的瑕疵。例如,同样的数据中的时间字段,有的可能为非标准的时间,出现的原因可能为应用程序的错误,系统的错误等,这是在进行数据处理时,必须制定强大的数据清洗规则和出错处理机制。
十二、建立视图或者物化视图
视图中的数据来源于基表,对海量数据的处理,可以将数据按一定的规则分散到各个基表中,查询或处理过程中可以基于视图进行,这样分散了磁盘I/O,正如10根绳子吊着一根柱子和一根吊着一根柱子的区别。
十三、避免使用32位机子(极端情况)
目前的计算机很多都是32位的,那么编写的程序对内存的需要便受限制,而很多的海量数据处理是必须大量消耗内存的,这便要求更好性能的机子,其中对位数的限制也十分重要。
十四、考虑操作系统问题
海量数据处理过程中,除了对数据库,处理程序等要求比较高以外,对操作系统的要求也放到了重要的位置,一般是必须使用服务器的,而且对系统的安全性和稳定性等要求也比较高。尤其对操作系统自身的缓存机制,临时空间的处理等问题都需要综合考虑。
十五、使用数据仓库和多维数据库存储
数据量加大是一定要考虑OLAP的,传统的报表可能5、6个小时出来结果,而基于Cube的查询可能只需要几分钟,因此处理海量数据的利器是OLAP多维分析,即建立数据仓库,建立多维数据集,基于多维数据集进行报表展现和数据挖掘等。
十六、使用采样数据,进行数据挖掘
基于海量数据的数据挖掘正在逐步兴起,面对着超海量的数据,一般的挖掘软件或算法往往采用数据抽样的方式进行处理,这样的误差不会很高,大大提高了处理效率和处理的成功率。一般采样时要注意数据的完整bitsCN.com
推荐阅读
程序员
Perl:Foreach循环
如何解决《Perl:Foreach循环》经验,为你挑选了1个好方法。 ...
[详细]
程序员
使用jQuery/Javascript放置占位符
如何解决《使用jQuery/Javascript放置占位符》经验,为你挑选了0个好方法。 ...
[详细]
程序员
为什么循环中的任务工厂打印超出循环索引?
如何解决《为什么循环中的任务工厂打印超出循环索引?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何保护领域中的重复记录插入
如何解决《如何保护领域中的重复记录插入》经验,为你挑选了1个好方法。 ...
[详细]
程序员
使用electron和Systemjs导入节点模块
如何解决《使用electron和Systemjs导入节点模块》经验,为你挑选了0个好方法。 ...
[详细]
程序员
Python GEOS ImportError
如何解决《PythonGEOSImportError》经验,为你挑选了0个好方法。 ...
[详细]
程序员
获取调用日志时不推荐使用ManagedQuery()问题
如何解决《获取调用日志时不推荐使用ManagedQuery()问题》经验,为你挑选了0个好方法。 ...
[详细]
程序员
使用LINQ左连接具有多个条件和子查询
如何解决《使用LINQ左连接具有多个条件和子查询》经验,为你挑选了0个好方法。 ...
[详细]
程序员
Azure WebJobs ServiceBus返回异常:在授权上下文中找到2个DNS声明
如何解决《AzureWebJobsServiceBus返回异常:在授权上下文中找到2个DNS声明》经验,为你挑选了2个好方法。 ...
[详细]
程序员
从技术上讲,什么是数据库连接?
如何解决《从技术上讲,什么是数据库连接?》经验,为你挑选了0个好方法。 ...
[详细]
程序员
功能中的智能指针
如何解决《功能中的智能指针》经验,为你挑选了2个好方法。 ...
[详细]
程序员
Nodejs窗口中的绝对路径,带正斜杠
如何解决《Nodejs窗口中的绝对路径,带正斜杠》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如果字符串再次使用,为什么额外字符出现在字符串中?
如何解决《如果字符串再次使用,为什么额外字符出现在字符串中?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
从另一个组件访问组件的状态
如何解决《从另一个组件访问组件的状态》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何在石灰调查验证中禁用JavaScript警报
如何解决《如何在石灰调查验证中禁用JavaScript警报》经验,为你挑选了0个好方法。 ...
[详细]
程序员
java.lang.ArithmeticException:除法未定义
如何解决《java.lang.ArithmeticException:除法未定义》经验,为你挑选了1个好方法。 ...
[详细]
程序员
依赖注入类型选择
如何解决《依赖注入类型选择》经验,为你挑选了1个好方法。 ...
[详细]
程序员
从泛型类型的trait调用静态方法
如何解决《从泛型类型的trait调用静态方法》经验,为你挑选了1个好方法。 ...
[详细]
程序员
Could not autowire field:private org.springframework.security.crypto.password.PasswordEncoder;
如何解决《Couldnotautowirefield:privateorg.springframework.security.crypto.password.PasswordEncoder;》经验,为你挑选了1个好方法。 ...
[详细]
程序员
Node.js - Express.js JWT,如何检查令牌是否过期?
如何解决《Node.js-Express.jsJWT,如何检查令牌是否过期?》经验,为你挑选了3个好方法。 ...
[详细]
吐了个 "CAO" !
吐个槽吧,看都看了
会员登录
|
用户注册
路人甲
这个屌丝很懒,什么也没留下!
关注作者
Tags | 热门标签
elasticsearch
json
mariadb
memcached
mongodb
mysql
nosql
redis
sql
sqlite
RankList | 热门文章
1
Hibernate 5无法正确处理LocalDate
2
故事板警告:iOS 8.0之前的第一个基线布局属性
3
如何在React-Native中的导航器的多个场景之间共享状态
4
Hibernate 5是否为多租户数据实施了DISCRIMINATOR方法?
5
AWS Kinesis Firehose不在Redshift中插入数据
6
在Reactive Cocoa 4中点击UIButton获取信号
7
我无法从bufferGeometry获取position属性
8
如何防止"可能的分数损失"?
9
如何在Loader项目中连接信号?
10
模板实例化,两阶段名称查找,具有自动推导类型的不同行为
11
什么在Ruby中更快,`arr + = [x]`或`arr << x`
12
SQLSTATE [HY000] [1049]未知数据库'register_login'
13
Rails,Sidekiq - Redis NOAUTH
14
反序列化XML - 对于无符号字节,值太大或太小
15
量角器检查位置路径
16
RavenDB Map减少了不同的索引
17
Yii2注销特定用户
18
如何使用javascript按类名获取价值
19
Xcode中文件夹和组之间的区别?
20
Angular2错误 - 我的登录组件没有提供程序错误
DevBox开发工具箱 | 专业的在线开发工具网站
京公网安备 11010802040832号
|
京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有