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

简介: 本文讲的是数据库分区:海量数据分区改造的玄与机国内最受关注的数据库技术盛会——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

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

目录
相关文章
|
6月前
|
数据库 Windows
数据库数据恢复—SqlServer数据库分区损坏的数据恢复案例
SqlServer数据库数据恢复环境: 一台服务器,windows操作系统+NTFS文件系统,运行了12个sqlserver数据库。 SqlServer数据库故障: 根据用户描述,故障情况是工作人员误操作导致服务器硬盘上sqlserver数据库所在分区损坏。经过北亚企安数据恢复工程师对故障服务器硬盘的初步检测,确认sqlserver数据库所在分区损坏,sqlserver数据库数据丢失。
数据库数据恢复—SqlServer数据库分区损坏的数据恢复案例
|
9月前
|
PHP 数据库
PHP:pdo连接数据库获取分区名称及属性信息
PHP:pdo连接数据库获取分区名称及属性信息
38 0
|
9月前
|
存储 关系型数据库 MySQL
MySQL数据库的分区和分表技术
MySQL数据库的分区和分表技术
|
10月前
|
监控 数据库
构建高可用性的数据库架构:主从复制和分区策略
在今天的软件开发领域中,构建高可用性的数据库架构至关重要。数据是应用程序的核心,因此确保数据的持久性、可用性和一致性对于任何规模的应用程序都是至关重要的。在本篇文章中,我们将重点介绍两种常用的数据库高可用性技术:主从复制和分区策略,并讨论如何将它们结合起来构建一个稳定和可靠的数据库架构。
111 0
|
11月前
|
存储 运维 分布式数据库
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X分区管理(1)
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X分区管理(1)
125 0
|
11月前
|
弹性计算 分布式数据库 Docker
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X分区管理(2)
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X分区管理(2)
103 0
|
11月前
|
存储 分布式数据库
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X分区管理(3)
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X分区管理(3)
103 0
|
11月前
|
分布式数据库
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X分区管理(4)
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X分区管理(4)
95 0
|
11月前
|
存储 分布式数据库 数据安全/隐私保护
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X分区管理(5)
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X分区管理(5)
88 0
|
11月前
|
分布式数据库 索引
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X分区管理(6)
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X分区管理(6)
83 0

热门文章

最新文章