首页
技术笔记
网址导航
Json在线解析
二维码
Ip地址查询
在线流程图
新用户注册
|
会员登录
在线工具
开发笔记
毒鸡汤
网址导航
免费在线流程图
14赞
587
当前位置:
开发笔记
>
数据库
> 正文
个人经验总结:处理海量数据的经验和技巧(2)_MySQL
作者:手机用户2402852387 | 2021-09-07 10:08
个人经验总结:处理海量数据的经验和技巧(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
推荐阅读
程序员
解析程序:分段错误(核心转储)
如何解决《解析程序:分段错误(核心转储)》经验,为你挑选了0个好方法。 ...
[详细]
程序员
为什么不是每个循环的JavaScript?
如何解决《为什么不是每个循环的JavaScript?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
ffmpeg:多个filter_complex的链,重用中间输出流
如何解决《ffmpeg:多个filter_complex的链,重用中间输出流》经验,为你挑选了1个好方法。 ...
[详细]
程序员
更新列值为空的表中所有行的列值?
如何解决《更新列值为空的表中所有行的列值?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何执行lappend $ varname1 $ varname2
如何解决《如何执行lappend$varname1$varname2》经验,为你挑选了1个好方法。 ...
[详细]
程序员
这个表达式有效吗?
如何解决《这个表达式有效吗?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
声明具有完整定义的子类
如何解决《声明具有完整定义的子类》经验,为你挑选了1个好方法。 ...
[详细]
程序员
Pandas:合并多个数据帧和控制列名?
如何解决《Pandas:合并多个数据帧和控制列名?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
自定义视图,使用不同的子视图对角分割布局
如何解决《自定义视图,使用不同的子视图对角分割布局》经验,为你挑选了2个好方法。 ...
[详细]
程序员
泡菜蟒蛇烤宽面条模型
如何解决《泡菜蟒蛇烤宽面条模型》经验,为你挑选了1个好方法。 ...
[详细]
程序员
可以在NSUserDefaults中保留HKQueryAnchor吗?
如何解决《可以在NSUserDefaults中保留HKQueryAnchor吗?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
python selenium,找到下载完成后?
如何解决《pythonselenium,找到下载完成后?》经验,为你挑选了2个好方法。 ...
[详细]
程序员
LINQ FirstOrDefault返回超过1个结果
如何解决《LINQFirstOrDefault返回超过1个结果》经验,为你挑选了1个好方法。 ...
[详细]
程序员
Rails通过保存到列的哈希值来查询对象?
如何解决《Rails通过保存到列的哈希值来查询对象?》经验,为你挑选了0个好方法。 ...
[详细]
程序员
在移动和网络数据存储上注册/登录Facebook和谷歌
如何解决《在移动和网络数据存储上注册/登录Facebook和谷歌》经验,为你挑选了0个好方法。 ...
[详细]
程序员
窗口函数LAG可以引用正在计算值的列吗?
如何解决《窗口函数LAG可以引用正在计算值的列吗?》经验,为你挑选了0个好方法。 ...
[详细]
程序员
如何在asyncio循环中等待?
如何解决《如何在asyncio循环中等待?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
什么是git log -L的"函数名regex":<funcname>:<file>
如何解决《什么是gitlog-L的"函数名regex":<funcname>:<file>》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何拆分包含String和Int的文本并存储到ArrayList中?
如何解决《如何拆分包含String和Int的文本并存储到ArrayList中?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
为什么em的行为不符合定义
如何解决《为什么em的行为不符合定义》经验,为你挑选了4个好方法。 ...
[详细]
吐了个 "CAO" !
吐个槽吧,看都看了
会员登录
|
用户注册
手机用户2402852387
这个屌丝很懒,什么也没留下!
关注作者
Tags | 热门标签
elasticsearch
json
mariadb
memcached
mongodb
mysql
nosql
redis
sql
sqlite
RankList | 热门文章
1
`test:first job:script应该是一个字符串或一个字符串数组
2
适配器作为演示者?或者与演示者交谈?Android和MVP
3
OkHttp Post Body as JSON
4
在任何情况下,您更喜欢比较低的时间复杂算法更高的大O时间复杂度算法吗?
5
选择案例不按预期工作
6
如何使用Jquery和Ajax从JSON文件检索数据?
7
使用browserify和debowerify进行编译后,下划线中的"this"未定义
8
如何从TFS 2013中删除Sharepoint和Reporting Services?
9
xcode 7.2无法构建Objective-C模块
10
Meteor,WebSocket,Nginx 502错误
11
使用继承重叠Spring bean名称
12
如何强制Axis客户端使用TLSv1.2协议
13
使用ggplot2的直方图中心条
14
IncomingMessage中止事件
15
Openlayers 3 Offset RegularShape
16
如何重现相同状态的基于随机的算法
17
phpMyAdmin提供export.php而不是数据库sql转储
18
MySQL:通过块检索大的选择
19
从对象创建Jackson对象节点
20
React Native Pause/Play GIF
DevBox开发工具箱 | 专业的在线开发工具网站
京公网安备 11010802040832号
|
京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有