`
Callan
  • 浏览: 730844 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

数据库中的水平分割和垂直分割

阅读更多

1。水平分割:按记录进分分割,不同的记录可以分开保存,每个子表的列数相同。

水平分割通常在下面的情况下使用:

A 表很大,分割后可以降低在查询时需要读的数据和索引的页数,同时也降低了索引的层数,提高查询速度。

B 表中的数据本来就有独立性,例如表中分别记录各个地区的数据或不同时期的数据,特别是有些数据常用,而另外一些数据不常用。

C需要把数据存放到多个介质上。

 

例如法规表law就可以分成两个表active-law和 inactive-law。activea-authors表中的内容是正生效的法规,是经常使用的,而inactive-law表则使已经作废的法规,不常被查询。水平分割会给应用增加复杂度,它通常在查询时需要多个表名,查询所有数据需要union操作。在许多数据库应用中,这种复杂性会超过它带来的优点,因为只要索引关键字不大,则在索引用于查询时,表中增加两到三倍数据量,查询时也就增加读一个索引层的磁盘次数。

 

2。垂直分割:按列进行分割,即把一条记录分开多个地方保存,每个子表的行数相同。

把主码和一些列放到一个表,然后把主码和另外的列放到另一个表中。如果一个表中某些列常用,而另外一些列不常用,则可以采用垂直分割,另外垂直分割可以使得数据行变小,一个数据页就能存放更多的数据,在查询时就会减少I/O 次数。其缺点是需要管理冗余列,查询所有数据需要join操作。 

例如有表T1
id  name  qty
--------------
1  p1    10
2  p2    20
3  p3    30
4  p4    40
......
......

垂直分割就是按列进行分割,即把一条记录分开多个地方保存,每个子表的行数相同。
例如表T1,可以把id和name放到数据文件p1,把qty放到数据文件p2。

水平分割就是按记录进分分割,不同的记录可以分开保存,每个子表的列数相同。
像表T1,可以把id为单数的放到数据文件P1,双数的放到数据文件P2

表散列与水平分割相似,但没有水平分割那样的明显分割界限,
它由哈希函数和键值决定一条记录的保存文件,这样是为了IO更加均衡。

 

分享到:
评论
3 楼 oraclhr123 2010-04-21  
垂直划分可以从业务出发来分库或分表(拆分字段)
水平划分是根据规则来划分数据库表中的记录
2 楼 gaotianpu 2010-04-16  
垂直分割唯一一个问题想不清楚,
原来n台server,数据又增加到没法承受的水平,再增加了m台server?
靠hash分配,新老server如何调整?

不知道我是否说清楚了?
1 楼 tuyinbo 2010-02-02  
数据库中的水平分割和垂直分割说明的很详细,能不能说明下没有情况的使用场合?

相关推荐

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

    水平分割根据某些条件将数据放到两个或多个独立的表中。即按记录进分分割,不同的记录可以分开保存,每个子表的列数相同。水平切割将表分为多个表。每个表包含的列数相同,但是数据行更少。例如,可以将一个包含十...

    基于mybatis框架,数据库垂直、水平拆分及读写分离实现

    对spring整合mybatis的SqlSessionTemplate进行修改,对数据库数据库垂直、水平拆分及读写分离进行支持,并构建相应的模型。同时实现一致性哈希的分表策略。

    数据库设计--ER图

    数据库设计是指对于一个给定的应用环境,构造最优的... 3.3 模型优化:减少连接运算,垂直和水平分割,使用快照,减少数据占用空间 4 物理结构设计 5 数据库的建立和测试 6 数据库的运行和维护 7 数据库保护

    分布式数据库系统-复习.doc

    水平分片 垂直分片 混合分片 分布式数据库中的数据分布策略有: 、 、 和 四层。 集中式 分割式 复制式 混合式 分布式数据库是多层模式结构,一般划分为 、 、 和 四层。 全局外层 全局概念层 局部概念层 局部内层 ...

    分布式数据库系统复习材料.doc

    17、数据分片有三种基本方法:水平分片、垂直分片、混合分片 18、定义各类片段要遵守的规则:完备性条件、可重构条件、不相交条件 19、所谓数据分布是指分布式数据库中的数据不是存储在一个站点的计算机存储设备上 ...

    Mysql数据库优化笔记(细节决定成败)

    c: 分表技术(水平分割、垂直分割) d: 读写[写: update/delete/add]分离 e: 存储过程 [模块化编程,可以提高速度] f: 对mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ] g: mysql服务器硬件升级 h: 定时的去...

    一个MySQL分库分表php类

    当一个表数据记录过大时就会出现性能瓶颈,而一般对应的解决办法是要么做分区表,要么分表,分区表就不说了,分表又分为垂直分割和水平分割,具体区 别请自行搜索。一般而言,分库分表属于水平分割,按照一定的规则...

    MySQL数据库优化技术概述

    对于一个以数据库为中心的应用,数据库的优化直接影响到程序的性能,因此数据库性能至关重要。一般来说,要保证数据库的效率...  水平分割  垂直分割  4、读写分离:  写:update/delete/insert  5、存储过程

    数据库优化详解

    分表分库 (水平分割,垂直分割) 主从复制、读写分离 SQL 调优 对 MySQL 配置优化 (配置最大并发数 my.ini, 调整缓存大小) 定时清除不需要的数据,定时进行碎片整理 二、具体优化方案 (一)数据库设计—三大范式、...

    mysql笔记,mysql优化图解

    c: 分表技术(水平分割、垂直分割) d: 读写[写: update/delete/add]分离 e: 存储过程 [模块化编程,可以提高速度] f: 对mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ] g: mysql服务器硬件升级 h: 定时的去...

    一个MySQL分库分表php类.zip

    当一个表数据记录过大时就会出现性能瓶颈,而一般对应的解决办法是要么做分区表,要么分表,分区表就不说了,分表又分为垂直分割和水平分割,具体区 别请自行搜索。一般而言,分库分表属于水平分割,按照一定的规则...

    第七章-分布式数据库系统.docx

     数据分片: 分布式数据库中的数据可被分割和复制在网络场地的各个物理数据库中。一般数据存放的单位不是关系而是片段,一个片段是关系的一部分。 分片的方式主要有下面三种: (1) 水平分片:按一定的条件把全局...

    mysql优化笔记.doc

    c: 分表技术(水平分割、垂直分割) d: 读写[写: update/delete/add]分离 e: 存储过程 [模块化编程,可以提高速度] f: 对mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ] g: mysql服务器硬件升级 h: 定时的去...

    DBMS题库研究生考试

    1.数据仓库的四个基本特征是指数据仓库中的数据是面向主题的、集成的、不可更新的和随时间不断变化的。...数据分割后的数据单元称为分片,数据分片的类型有 水平分片、垂直分片 、混合分片和导出分片等。

    数据库系统原理之关系运算

    第二类是扩充的关系操作:投影(对关系的垂直分割)、选择(对关系的水平分割)、连接和自然连接(关系的结合)。  五个基本操作:  举例说明:  两个关系如下:  并:  差:  ...

    向外扩展SQL Server 实现更高扩展性

    使用水平数据划分,数据库结构在数据库实例方面没有变化。...垂直数据划分包括把数据库表分割成在不同服务器上保存的不同数据库实例。每台服务器一般分配完成一个特殊的任务。这样就可以对那些表中的IO进行分割。

Global site tag (gtag.js) - Google Analytics