数据库分区:海量数据分区改造的玄与机

简介: 本文讲的是数据库分区:海量数据分区改造的玄与机国内最受关注的数据库技术盛会——2017第八届中国数据库技术大会(DTCC2017)于2017年5月11-13日如约而至。本届大会以“数据驱动?价值发现”为主题,汇集来自互联网、电子商务、金融、电信、政府、行业协会等20多个领域的120多位技术专家,共同探讨Oracle、MySQL、NoSQL、云端数据库、智能数据平台、区块链、数据可视化、深度学习等领域的前瞻性热点话题与技术。

本文讲的是数据库分区:海量数据分区改造的玄与机国内最受关注的数据库技术盛会——2017第八届中国数据库技术大会(DTCC2017)于2017年5月11-13日如约而至。本届大会以“数据驱动?价值发现”为主题,汇集来自互联网、电子商务、金融、电信、政府、行业协会等20多个领域的120多位技术专家,共同探讨Oracle、MySQL、NoSQL、云端数据库、智能数据平台、区块链、数据可视化、深度学习等领域的前瞻性热点话题与技术。  

数据库分区:海量数据分区改造的玄与机

  (更多大会精彩:http://tech.it168.com/topic/2017/5-10/DTCC2017/)

在大会的分会场上,来自福富软件研究院的副理事长的梁敬彬来了《海量数据分区改造的玄与机》的精彩分享。

近年来随着数据爆炸式增长,不乏TB级OLTP数据库产生,甚至更大,单表的数据量出现上亿的记录,随着时间的推移表变的更加臃肿,影响了数据库的运行效率,增大了数据库的维护难度,也不利于数据的生命周期管理,这里就需要把大块的数据分而治之,也就是数据库上的分区。

对于分区表的改造思路梁敬彬表示,有普通手工思路和程序实现思路之分,前者新建一张分区表,按日期建分区,确保分区表各字段和属性都和普通表一样,然后停应用,将普通表记录插入到分区表中,再然后将普通表重命名,分区表命名表的名字,完成任务。而这种思路首先命名上会有冲突,插入很慢,并且手工操作很麻烦,尤其是多个分区表要改造的时候。而程序实现思路不用手工方式,用代码实现,重命名顺序执行,分区表用SPLIT模式完成,通过数据字典完成所有属性的完善。

谈到具体改造时梁敬彬谈到,“怎么样做这个事情效率最高,有时候一些脚本的使用频率比较高,在实施过程中,效率也不错。在普通表改造过程中,我们一般会遇到什么问题。首先建一张表,就有命名问题,新表旧表的名字肯定不一样;第二个就是重命名的时候要注意顺序,它的各个属性不能丢失;在性能方面也要注意,要用CTAS方式来进行;做多久能够完成?做的每个动作能不能记录下来?做了什么动作?万一失败的话在哪里失败?”

从梁敬彬展示的部分代码中可以看到,代码分成两部分,一个是脚本,一个测试。可以看到建立了一些有比较复杂属性的表,然后插入数据,通过快速的方式把的表的属性转化成了分区表;脚本分为两部分,逻辑部分可以对这些表进行各种操作,控制部分首先有个概念就是我们在生产环境中有很多脚本,如果直接来执行的话,可能会有些问题,虽然是程序来实现的,但是还是建议通过程序把要执行的脚本全部输出来,然后再一条条过。这里有个判断过程是零,就不执行。零的话有个好处,把脚本可以合一遍,可以手工一条条来执行。  

数据库分区:海量数据分区改造的玄与机

针对关系型数据库,它的表记录会有越来越大的情况。当然在oltp系统里面表非常大,并不是意味着查询非常慢,因为不管记录有多大,只要返回记录,所以分区表是我们在海量数据库里面的一个优化的很好的利器。

需要注意的2个因素为:1分区消除(提升性能)2.历史数据转移。所以当你无法满足这两点的时候,设计就有问题。分区建的选择一般是用在可以有效的割断数据的场合,比如地区号(从0591-0599区分福建的9个地市,这样访问厦门就不要访问别的地方,实现了有效的分区消除)比如时间(区分历史数据,可以只保留最新的数据,有效的实现了数据迁移和瘦身)。

原文发布时间为:2017-05-13

本文来自云栖社区合作伙伴IT168,了解相关信息可以关注IT168

原文标题:数据库分区:海量数据分区改造的玄与机

目录
相关文章
|
9月前
|
数据库 Windows
SqlServer数据恢复—SqlServer数据库所在分区损坏的数据恢复案例
一块硬盘上存放的SqlServer数据库,windows server操作系统+NTFS文件系统。由于误操作导致分区损坏,需要恢复硬盘里的SqlServer数据库数据。
|
关系型数据库 分布式数据库 数据库
PolarDB产品使用问题之底层是否会自动对数据库表进行分区分表
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
254 58
|
存储 SQL 数据库
OceanBase数据库的分区策略
【8月更文挑战第13天】OceanBase数据库的分区策略
793 5
|
SQL 数据库
数据库数据恢复—sqlserver数据库分区空间不足导致故障的数据恢复案例
数据库数据恢复环境: 某品牌r520服务器,服务器中有7块SAS硬盘,这7块硬盘组建了一组2盘raid1阵列和一组5盘raid5阵列,raid1阵列存储空间安装操作系统,raid5阵列存储空间存放数据。服务器上部署sql server数据库,数据库存放在C盘。 数据库故障: 工作人员发现服务器的C盘容量即将耗尽,于是将sql server数据库路径指向D盘,在D盘生成了一个.ndf文件。一个多星期后,sql server数据库出现故障,连接失效,无法正常附加查询。
数据库数据恢复—sqlserver数据库分区空间不足导致故障的数据恢复案例
|
DataWorks 安全 关系型数据库
DataWorks产品使用合集之如何实现MySQL数据库的自动分区
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
存储 分布式数据库 数据库
深入OceanBase内部机制:分区构建高可用、高性能的分布式数据库基石
深入OceanBase内部机制:分区构建高可用、高性能的分布式数据库基石
|
存储 缓存 关系型数据库
心得经验总结:理解MySQL——并行数据库与分区(Partion)
心得经验总结:理解MySQL——并行数据库与分区(Partion)
145 0
|
存储 负载均衡 容灾
软件体系结构 - 关系数据库(4)分区
【4月更文挑战第27天】软件体系结构 - 关系数据库(4)分区
155 1
|
存储 SQL 关系型数据库
关系型数据库分区与分片
关系型数据库分区与分片
204 1
|
存储 SQL 数据管理
基于阿里云数据库 SelectDB 版内核 Apache Doris 全新分区策略 Auto Partition 应用场景与功能详解
自动分区的出现进一步简化了复杂场景下的 DDL 和分区表的维护工作,许多用户已经使用该功能简化了工作流程,并且极大的便利了从其他数据库系统迁移到 Doris 的工作,自动分区已成为处理大规模数据和应对高并发场景的理想选择。
463 0

热门文章

最新文章