Mysql海量数据处理

article/2025/9/25 9:52:58

一说海量数据有人就说了直接用大数据,那只能说不太了解这块,为此我们才要好好的去讲解一下海量的处理

  1. 海量数据的处理分为两种情况
    1)表中有海量数据,但是每天不是很快的增长
    2)表中有还流量数据,而且每天很快速的增长
    针对这了两种情况,我们给出的解决方案也不太一样,而且也不是所有的项目都是这样的情况。

  2. 海量数据的解决方案
    1)使用缓存
    2)页面静态化技术
    3)数据库优化
    4)分离数据库中活跃的数据
    5)批量读取和延迟修改
    6)读写分离
    7)使用NoSql和Hadoop等技术
    8)分布式部署数据库
    9)应用服务和数据库分离
    10)使用搜索引擎搜索数据库中的数据
    11)进行业务的拆分

    千万级数数据,mysql实际上确实不是什么压力,InnoDB的存贮引擎,使用B+数存储结构,千万级的数据量,基本也就是三四层的搜索,如果是配置合适的索引,性能基本也不是问题

    但有时候业务上面的增长,导致数据还会继续增长,为了应对这方面的问题而必须要做扩展了此时可能首先考虑的就是分库分表

    数据的切分: 就是通过某种特定的条件,将我们存放在同一个数据库中的数据分散的存放到多个数据库中,以达到分散单台数据库负载的效果,即为分库分表

  3. 分表
    把一张表按一定的规则分解成N个具有独立存储空间的实体表。系统读写时需要根据定义好的规则得到对应的字表明,然后操作它

    1)什么时候考虑分表?
    * 一张表的查询速度已经慢的受到影响的时候
    * sql经过优化
    * 单张表中数据量爱的
    * 当频繁插入或者联合查询时,查询变慢
    2)分表解决的问题
    * 单表的并发能力提高了,硬盘I/O性能也提高了,写操作效率提高了
    * 查询一次的时间短了
    * 读写缩影的数据变小
    * 插入数据需要重新建立索引的数据减少

  4. 分库
    将一个应用中对应的一个数据库分解成多个数据库,且可以这多个数据库可以存在同一个服务器上,也可以存在于多个服务器上

    1)什么时候考虑分库?
    * 单台DB的存贮空间不够
    * 随着查询量的增加单台数据库服务器已经没法支撑

    2)分库解决的问题
    * 主要目的是为了突破单节点数据库的I/O能力限制,解决数据库扩展性问题

  5. 分区
    把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的

    1)什么时候考虑分区
    * 张表的查询速度已经慢的受到影响的时候
    * sql优化
    * 数据量大
    * 表中的数据是分段的
    * 对数据的操作往往只涉及一部分数据,而不是所有的数据

    2)分区可以解决的问题
    提升查询效率

    3)分区的实现方式
    使用数据库工具,或者sql语句

PARTITION BY RANGE(YEAR(order_day)) (PARTITION p_2010 VALUES LESS THAN (2010),PARTITION p_2011 VALUES LESS THAN (2011),PARTITION p_2012 VALUES LESS THAN (2012),
PARTITION p_catchall VALUES LESS THAN MAXVALUE);MAXVALUE 表示最大的可能的整数值。查看某一分区内的数据:
SELECT * FROM sales PARTITION (p_2010);/*查询在该分区内的数据*/删除分区
ALTER TABLE sale_data DROP PARTITION s20100406 ;

4)分区类型
* RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区。
* LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。
* HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式。
* KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL 服务器提供其自身的哈希函数。必须有一列或多列包含整数值

6. 分区和分表的区别于联系
* 分区和分表的目的都是减少数据库的负担,提高表的增删改查的效率。
* 分区只是一张表中的数据的存储位置发生变化,分表是将一张表分城多个表
* 访问量大,且数据比较大时,两种方式可以互相配合使用
* 访问量不大,但表数据比较多时,可以只进行分区

7. 垂直分割和横向分割
将表中的一个字段存放在另一个表(或数据库中) 将表中的一些数据存放到另一个表中或数据库中其中两个表的字段一致
在这里插入图片描述在这里插入图片描述

  1. 拆分之后面临的问题**
    1)事物的支持
    ,分库分表,就变成了分布式事务
    2)join时跨库,跨表的问题
    3)分库分表,使用分布式读写分离,分布式为了保证为强一致性,必然带来延迟,导致性能降低,系统的复杂程度高

解决方案
1)分布式事物的解决方法为JTA,而JTA的实现又需要依靠Atomikos框架,而Atomikos又需要SringData+jpa支持,而SptingData+jpa又可以需要Hibernate实现持久化操作
2)选用第三方的数据中间件(Atlas,Mycat,TDDL)同时业务系统需要配合数据存储的升级

9. 总结
能不分就不分,分库分表的行为都会在某种程度上提升业务逻辑的复杂度,业务的时间复杂程度往往会翻倍或指数上升,所以,在分库之前,不要为分而分,去做其他做其它力所能及得事情把,比如升级硬件,网络,数据库版本,读写分离,负载均衡等,所有分库分表的前提是,这些你已经尽力了。


http://chatgpt.dhexx.cn/article/e3X4g9JC.shtml

相关文章

海量数据处理方法总结

目录 海量数据处理算法与数据结构基础海量数据处理方法归纳分而治之 / hash 映射 hash 统计 堆 / 快速 / 归并排序多层桶结构Bitmap / Bloom filterBitmapBloom filter Trie树/数据库/倒排索引Trie树数据库索引倒排索引(Inverted index) 外排序分布式处理之Hadoop/Mapreduce …

如何解决海量数据的处理问题

一、海量数据,为高效查询,如何处理?分库分表会带来哪些副作用?可能的解决方式有哪些? 目前经常使用的关系型数据库如 MySQL、SQL Server 等,都是以“行”为单位进行存储,为了快速检索&#xff…

海量数据处理

目录 补充 1.位图应用 (1)给定100亿个整数,设计算法找到只出现一次的整数 (2)给两个文件,分别有100亿个整数,我们只有1G内存,如何找到两个文件的交集 (3)一个文件有100亿个整数,1G内存,设计算法找到出现…

H264视频码流格式浅析

针对H264码流格式说明,网上已经有很多介绍了,最近也在看这个,这里根据自己理解,做个记录。 1、H264的功能分为两层:视频编码层(VLC,Video Coding Layer)和网络提取层(NAL, Network Abstraction Layer)。VLC数据即 编码…

H.264(H264)视频文件的制作

一、准备工作 1.下载并安装优酷客户端 2.下载ffmpeg可执行文件,解压可用,不需要下载源码自己编译。 ffmpeg可执行文件下载链接:http://download.csdn.net/detail/caoshangpa/9492758 二、用优酷客户端下载视频并转码 用优酷客户端下载一…

H264和H265区别

很多小伙伴应该都听过H.265和H.264这两种编码,也了解专业术语的解释。包括电视机 都会标注支持H.265格式4K视频编码,视频监控系统也会 标注支持H.265。但是在没有用过的情况下,很难说真的已经 知道两者的区别了,那么H.265和H.264这…

H264 编解码协议详解

1.、什么是 H264? H264 是 MPEG-4 标准所定义的最新编码格式,同时也是技术含量最高、代表最新技术水平的视频编码格式之一,标准写法应该是H.264 H264 视频格式是经过有损压缩的,但在技术上尽可能做的降低存储体积下获得较好图像…

视频和视频帧:H264编码格式整理

本文将介绍的是: H264的发展历史。将介绍H26x和MPEG家族的发展和关联。H264的编码格式。主要介绍VCL和NAL,前者与视频编码数据紧密相关,后者和H264格式相关,也是本文介绍的重点。NAL。介绍NAL的组成单元:NALU。包括NA…

h264文件视频存储格式和音频存储格式

mp4封装 目录 h264视频流格式介绍 aac音频流格式介绍 h264视频文件读取 通过帧索引解析h264文件 通过解析h264结构读取文件 aac音频文件读取 mp4封装 初始化 数据封装 关闭mp4文件句柄 注意点 目录 h264视频流格式介绍 视频数据帧分为I帧,P帧,B帧,其中I帧为关键帧,所包含的图像…

H264和h265编码

未压缩的码流:一秒钟码流大小:640x480x1.5x15x855296000 (是55MB)其中 1.5是yuv占用1.5倍,rgb是3倍,8是一个字节是八位bit H264的建议码流是500kpbs,因此压缩比是100 电影一般帧率大于60帧;在线教育,实时通信一般是15帧 工具使…

H264格式 详细介绍

原文地址:http://blog.csdn.net/yangzhongxuan/article/details/8003494 名词解释 场和帧 : 视频的一场或一帧可用来产生一个编码图像。在电视中,为减少大面积闪烁现象,把一帧分成两个隔行的场。 片: 每个图象中&…

H264码流格式

h264码流格式 码流格式 …NAL头RBSPNAL头RBSPNAL头RBSP… H264 传输 SPSSEIPPSI片图像定界符P片P片 NAL头格式 start code ( 3 or 4 )forbidden_zero_bit(1)nal_ref_idc (2)nal_unit_type( 5)RBSP 解释 start code&#xf…

H264H265格式

文章目录 H2641. NALU1.1 NALU Header1.1.1 nal_unit_type 2. 码流格式2.1 Annex B格式2.2 AVCC格式2.2.1 extradata结构 2.3 H264 Annexb与AVCC格式转换 3. 视频编码帧3.1 压缩方式3.2 编码帧3.3 丢帧 4. PTS与DTS4.1 概念4.2 为什么需要PTS,DTS? H2651…

音视频——视频流H264编码格式

1 H264介绍 我们了解了什么是宏快,宏快作为压缩视频的最小的一部分,需要被组织,然后在网络之间做相互传输。 H264更深层次 —》宏块 太浅了 ​ 如果单纯的用宏快来发送数据是杂乱无章的,就好像在没有集装箱 出现之前,…

H264编码简介

H264编码简介 H.264,同时也是MPEG-4第十部分,是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩…

H264格式

原文地址:http://blog.csdn.net/yangzhongxuan/article/details/8003494 名词解释 场和帧 : 视频的一场或一帧可用来产生一个编码图像。在电视中,为减少大面积闪烁现象,把一帧分成两个隔行的场。 片: 每个图象中…

H264格式解析

H264码流有两种形式:Annex B和AVCC。这两种码流形式所对应不同的编码方式和格式解析。 Annex B中每个NALU中没有存储NALU长度字节 AVCC中每个NALU中存储了长度信息 H264编码分为两层:vcl和nal vcl:编码nal:网络传输 Annex B的编…

H264编码基础概念+格式分析

一、编码基础概念 1、为什么要进行视频编码? 视频是由一帧帧图像组成,就如常见的gif图片,如果打开一张gif图片,可以发现里面是由很多张图片组成。一般视频为了不让观众感觉到卡顿,一秒钟至少需要16帧画面&#xff08…

H264编码格式--图文解释

一、H264格式 RBSP SODB RBSP trailing bits NALU NAL header(1 byte) RBSP H.264 Start Code Prefix(3 bytes) NALU Start Code Prefix(3 bytes) NALU … H.264从层次来看分为两层:视频编码层(VCL, Video Coding Layer&#xf…

【音视频基础】H264格式分析

介绍 H264是基于运动补偿的视频编码标准。所谓编码我的理解就是对数据进行压缩便于网络传输。而视频编码就是依据图像帧的像素块之间的相似性对图像进行压缩。 相关概念 H264结构中,一幅图像编码后的数据叫一帧,一帧由一个或多个Slice片组成&#xff…