`

数据库表分割技术

 
阅读更多

数据库表分割技术包含以下内容:

  • 水平分割
  • 垂直分割
  • 库表散列

1.1、水平分割

  什么是水平分割?打个比较形象的比喻,在食堂吃饭的时候,只有一个窗口,排队打饭的队伍太长了,都排成S型了,这时容易让排队的人产生焦虑情绪,容易产生混 乱,这时一个管理者站出来,增加多个打饭窗口,把那条长长的队伍拦腰截断成几队。更形象一点的理解,你拿一把“手术刀”,把一个大表猛的切了几刀,结果这个大表,变成了几个小表。

  水平分割根据某些条件将数据放到两个或多个独立的表中。即按记录进分分割,不同的记录可以分开保存,每个子表的列数相同。水平切割将表分为多个表。每个表包含的列数相同,但是数据行更少。例如,可以将一个包含十亿行的表水平分区成 12 个表,每个小表表示特定年份内一个月的数据。任何需要特定月份数据的查询只需引用相应月份的表。

  通常用来水平分割表的条件有:日期时间维度、地区维度等,当然还有更多的业务维度。

  下面我举几个例子来解说一下 

  • 案例1:某个公司销售记录数据量太大了,我们可以对它按月进行水平分割,每个月的销售记录单独成一张表。 
  • 案例2:某个集团在各个地区都有分公司,该集团的订单数据表太大了,我们可以按分公司所在的地区进行水平切割。 
  • 案例3:某电信公司的话单按日期、地市水平切割后,发现数据量太大,然后他们又按品牌、号码段进行水平切割 

  水平分割通常在下面的情况下使用:
  (1)表数据量很大,分割后可以降低在查询时需要读的数据和索引的页数,同时也降低了索引的层数,加快了查询速度。 
  (2)表中的数据本来就有独立性,例如表中分别记录各个地区的数据或不同时期的数据,特别是有些数据常用,而另外一些数据不常用。 
  (3)需要把数据存放到多个介质上。 
  (4)需要把历史数据和当前的数据拆分开。

  水平分割优点: 
    1:降低在查询时需要读的数据和索引的页数,同时也降低了索引的层数,加快了查询速度。

  水平分割缺点: 
    1:水平分割会给应用增加复杂度,它通常在查询时需要多个表名,查询所有数据需要union操作。在许多数据库应用中,这种复杂性会超过它带来的优点,因为只要索引关键字不大,则在索引用于查询时,表中增加两到三倍数据量,查询时也就增加读一个索引层的磁盘次数。 

1.2、垂直分割

  什么是垂直分割呢?打个形象的比喻,一个小公司通过短短几年发展变成了一个跨国大企业,以前的部门架构明显不能满足现在的业务发展,CEO噼里啪啦的把公司分成了财务部、人事部、生产部、销售部门.....,一下子成立了多个部门,各司其职。这个还算比较形象吧,有木有?呵呵 
  垂直分割表(不破坏第三范式),把主键列和一些列放到一个表,然后把主键列和另外的一些列放到另一个表中。将原始表分成多个只包含较少列的表。如果一个表中某些列常用,而另外一些列不常用,则可以采用垂直分割

  垂直分割优点: 
  1:垂直分割可以使得行数据变小,一个数据块(Block)就能存放更多的数据,在查询时就会减少I/O次数(每次查询时读取的Block 就少)。 
  2:垂直分割表可以达到最大化利用Cache的目的。 
  垂直分割缺点: 
  1:表垂直分割后,主码(主键)出现冗余,需要管理冗余列 
  2:会引起表连接JOIN操作(增加CPU开销)需要从业务上规避

1.3、库表散列

  表散列与水平分割相似,但没有水平分割那样的明显分割界限,采用Hash算法把数据分散到各个分表中, 这样IO更加均衡。一般来说,我们会按照业务或者功能模块将数据库进行分离,不同的模块对应不同的数据库或者表,再按照一定的策略对某个页面或者功能进行更小的数据库散列,比如用户表,按照用户ID进行表散列,散列128张表,则应就能够低成本的提升系统的性能并且有很好的扩展性

分享到:
评论

相关推荐

    数据库表分割技术浅析(水平分割/垂直分割/库表散列)

    数据库表分割技术包含以下内容:水平分割/垂直分割/库表散列.接下来将对以上分割进行详细介绍,感兴趣的朋友可以了解下,对你日后维护数据库是很有帮助的

    网络分割技术

    图像分割是图像处理领域中的一个基本问题。从大的方面来说,图像分割方法可大致分为基于区域的方法、基于边缘的方法、区域与边缘相结合的方法,以及在此基础上的、采用多分辨率图像处理理论的多尺度分割方法。基于...

    进销存的数据库设计文档.doc

    数据库的命名:全部由英文字母组成,单词之间使用下划线分割 如:进销存数据库命名为pds。 2. 数据库表命名:表义名(可以使用缩写) 表义名:单词首字母大写 4. 逻辑设计 5. 物理设计 5.1销售人员信息表 "字段名称 ...

    政务平台数据库设计.doc

    数据库设计 省级政务平台数据库设计 数据库设计原则 (1)标准化 严格按照相关技术标准完成数据库的设计,包括国土资源部颁发的相应数据库建库规 范标准、国家已经发布的许多基础的行业分类、代码标准,以及在信息化...

    数据库基础ACCESS2010.pptx

    数据库基础 数据库基础ACCESS2010全文共108页,当前为第1页。 数据库概述 一.... 数据库概述 分布式数据库系统 数据库技术和计算机网络技术相结合产生: 1)物理上独立,数据分布在网络的不同计算机 2)

    分布式数据库论文:系统分布式数据库的设计

    本文分析了我国农产品数据分散、难以共享的现状,介绍了分布式数据库的结构,详细叙述了分布式数据库的设计内容,提出了农产品电子商务系统中的分布式数据库的设计方案,包括数据分割、数据冗余和数据同步等问题的...

    图像分割技术在车牌识别系统中的应用

    智能车牌识别系统由图像获取、图像分割、数据库管理等几部分...过对人的视觉系统的分析,根据视觉特性对数字图像处理中的图像模型建立及图像分割技术进 行分析和讨论,并以智能车牌识别系统实例说明其在实际中的应用。

    MySQL数据库优化技术概述

     1、 数据库表设计:  表的设计合理化(符合3NF);  2、添加适当索引(index):  普通索引:  主键索引: primary 效率高,但是只能有一个  索引:unique  全文索引:fulltext 对文章中的词进行索引  ...

    关于数据库的规范化及反规范技术研究

    数据库的反规范设计可以提高...常用的反规范技术有增加冗余列、增加派生列、重新组表和分割表。但反规范技术需要维护数据的完整性。因此在做反规范时,一定要权衡利弊,仔细分析应用的数据存取需求和实际的性能特点。

    智能视频监控系统中基于GA的视频对象分割技术

    这是我从中国优秀硕士学位论文全文数据库下载的优秀硕士学位论文《智能视频监控系统中基于GA的视频对象分割技术》,如果文件格式为*.kdh或者*.nh,请到中国知网下载阅读阅读器CAJViewer, 网址为...

    数据库判断题全集.txt

    数据库技术的奠基人之一E.f.Codd从1970年起发表过多篇论文,主要论述的是关系数据模型。 在关系数据模型中,实体与实体之间的联系统一用二维表表示。 同一个关系模型的任意二个元组值可以完全相同。× 一个关系中的...

    数据库设计中的反规范技术深入探讨

    数据库的反规范设计可以提高...常用的反规范技术有增加冗余列、增加派生列、重新组表和分割表。但反规范技术需要维护数据的完整性。因此在做反规范时,一定要权衡利弊,仔细分析应用的数据存取需求和实际的性能特点。

    A-away#408-#数据库恢复技术1

    数据库恢复技术什么是事务事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位事务和程序是两个概念

    基于JAVA JSP旅游网站建设设计与实现的毕业设计,过网站开发应用技术的介绍、系统的分析、数据库的设计、网站的具体实现和系统的

    随着计算机网络技术、数据库技术、管理技术的发展,对信息的处理和利用已经深入到人类生活的各个方面。旅游是人们生活不可分割的组成部分,旅游业已成为当今世界上发展势头最强劲的产业,它是集吃、住、行、游、购、...

    阵列数据库系统的存储块分割策略研究

    阵列数据库系统是存储和...本文提出一种改进的Chunk边长分割算法CLD,其通过减少读取数据时的磁道数以及预取技术提高阵列数据库系统的性能。在阵列数据库系统SciDB集群上的实验表明,在最优情况下系统性能提升了10.9%。

    图书馆数据库管理系统.doc

    所谓第一范式(1NF)是指数据库表的每一列 都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个 值或者不能有重复的属性。上表3-1到表3-4,均满足第一范式的要求。 第二范式(2NF) 第二...

    PostgreSQL分区表(partitioning)应用实例详解

    分区表实际上是把逻辑上的一个大表分割成物理上的几小块,提供了很多好处,比如: 1、查询性能大幅提升 2、删除历史数据更快 3、可将不常用的历史数据使用表空间技术转移到低成本的存储介质上 那么什么时候该使用...

    SQL Server数据库查询速度慢原因及优化方法

    【赛迪网-IT技术报道】SQL Server数据库查询速度慢的原因有很多,常见的有以下几种:  1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)  2、I/O吞吐量小,形成了瓶颈效应。  3、没有...

    数据库第十章1

    第十章 数据库恢复技术事务是一系列的数据库操作,是数据库应用程序的基本逻辑单元10.1 事务的基本概念1、事务事务是用户定义的一个数据库操作序列,事务是不可分割

Global site tag (gtag.js) - Google Analytics