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

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更加均衡。

 

多旋翼飞行器设计与控制·Pixhawk4以及外部设备接线(笔记004) 笔记主要来源:Pixhawk 4 接线快速入门 目录 一、Pixhawk 4 的各个接口 二、接线图概览(重要传感器及外围设备) 三、飞控、GPS的安装方向 四、电源 五、无线电遥控 六、数传电台(可选) 七、SD Card(可选) 八、电机以及其他外设 一、Pixhawk 4 的各个接口 FMU:Flight Management Unit 飞行管理组件 主 FMU 处理器:STM32F765 32 位 Arm® Cortex®-M7,216MHz,2MB... 阅读详情

相关推荐

深度解析数据库垂直水平拆分:原则详解

通过详细探讨数据库拆分的原则,包括垂直拆分原则、水平拆分原则、性能优化与监控等方面,读者将能够全面了解数据库拆分的实施细节。通过本文,我们将为读者提供一个清晰的指南,使其能够更好地应用这些原则,解决实际项目中可能遇到的挑战,并充分利用数据库拆分带来的好处。随着业务规模的扩大数据量的增加,传统的单一数据库模式逐渐显得力不从心,因此,数据库拆分成为解决数据管理问题的重要手段之一。在本文中,我们深入探讨了数据库垂直水平拆分的原则,以解决不断增长的业务需求对数据库性能扩展性的挑战。

fudaihb的博客 2534

数据库垂直拆分

一、缘起 当数据库的数据量非常大时,水平切分垂直拆分是两种常见的降低数据库大小,提升性能的方法。假设有用户表: user( uid bigint, name varchar(16), pass varchar(16), age int, sex tinyint, flag tinyint, sign varchar(64), intro varchar(256) …); 水平切分是指,以某个字段为依据(例如uid),按照一定规则(例如取模),将一个库(表)上的数据拆分到多个库(表)

QuietThinking的博客 628

3D 结构光相机工作原理全解 | 从编码投射到三维重建,原理 + 代码 + 工业实战一站式掌握

本文从3D结构光相机的整体架构出发,层层拆解了编码投射、相位计算、相位解包裹、三维重建的核心原理,补充了工业实战所需的公式推导、代码实现、参数调优、设备选型案例落地,核心总结如下:相位是3D结构光成像的“灵魂”,其精度、稳定性直接决定3D重建的效果,包裹相位与绝对相位的区分的是工业实战的基础;编码投射的核心是“正弦条纹+格雷码条纹”组合,正弦条纹负责高精度相位提取,格雷码条纹辅助解包裹,适配工业场景的精度与稳定性需求;

getusushu的博客 339

垂直拆分、水平拆分、分库分表策略、主从复制、读写分离

垂直拆分就是要把表按功能模块划分到不同数据库中,如果你的系统是分布式微服务的架构,那就更好理解了,一般一个微服务对应这一个或多个数据库。比如电商系统一般都会有用户中心、订单、商品等等。用户中心数据库存的都是用户信息相关的,商品数据库存的都是商品相关的数据,订单数据库则是存的订单相关的。...

qq_36929638的博客 4215

分库分表了解

分库分表了解,以及shardingjdbc了解

u010738038的专栏 1157

php水平分割mysql_数据库中的水平分割垂直分割

1。水平分割: 按记录进分分割,不同的记录可以分开保存,每个子表的列数相同。 水平分割通常在下面的情况下使用: A 表很大,分割后可以降低在查询时需要读的数据索引的页数,同时也降低了索引的层数,提高查询速度。 B 表中的数据本来就有独立性,例如表1。水平分割:按记录进分分割,不同的记录可以分开保存,每个子表的列数相同。水平分割通常在下面的情况下使用:A 表很大,分割后可以降低在查询时需要读的数据...

weixin_42299679的博客 182

水平分割垂直分割库表散列概念说明

一、水平分割 根据一列或多列数据的值把数据行放到多个独立的表中,即按记录进行分割,不同的记录可以分开保存,每个子表的列数相同; 水平分区将表分为多个表,每个表包含的列数相同,但是行数更少。例如,可以将一个包含十亿行的表水平分区成12个表,没个小表表示特定年份内一个月的数据。任何需要特定 月份数据的查询只需要引用相应月份的表。 使用场景:表很大,分割后可以降低查询时需要读的数据索引的页数,

ivokky的专栏 1478

玉米叶片病害数据集,共4000多张图片

玉米叶片病害数据集,共4000多张图片,0普通锈病- 1306图像1灰色叶斑- 574图像2枯萎病-1146图像3健康- 1162图像玉米叶片病害数据集,共4000多张图片,0普通锈病- 1306图像1灰色叶斑- 574图像2枯萎病-1146图像3健康- 1162图像

上一篇: Tomcat6 一些调优设置内存和连接数
下一篇: Apache 301跳转
callan
博客等级 码龄18年 1粉丝 42原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值