`

数据库水平拆分和垂直拆分区别(以mysql为例

 
阅读更多
数据库水平拆分和垂直拆分区别(以mysql为例)
 
案例:
    简单购物系统暂设涉及如下表:
1.产品表(数据量10w,稳定)
2.订单表(数据量200w,且有增长趋势)
3.用户表 (数据量100w,且有增长趋势)
以mysql为例讲述下水平拆分和垂直拆分,mysql能容忍的数量级在百万静态数据可以到千万
 
垂直拆分(按数据库表服务器拆分):
垂直拆分是指,将一个属性较多,一行数据较大的表,将不同的属性拆分到不同的表中,以降低单库(表)大小,达到提升性能的目的的方法,垂直切分后,各个库(表)的特点是:
(1)每个库(表)的结构都不一样
(2)一般来说,每个库(表)的属性至少有一列交集,一般是主键
(3)所有库(表)的并集是全量数据
 
 
解决问题:
表与表之间的io竞争
 
不解决问题:
单表中数据量增长出现的压力
 
方案:
把产品表和用户表放到一个server上
订单表单独放到一个server上
 
水平拆分(按数据逻辑服务器拆分):
水平切分是指,以某个字段为依据(例如uid),按照一定规则(例如取模),将一个库(表)上的数据拆分到多个库(表)上,以降低单库(表)大小,达到提升性能的目的的方法,水平切分后,各个库(表)的特点是:
(1)每个库(表)的结构都一样
(2)每个库(表)的数据都不一样,没有交集
(3)所有库(表)的并集是全量数据
 
解决问题:
单表中数据量增长出现的压力
 
不解决问题:
表与表之间的io争夺
 
方案:
用户表通过性别拆分为男用户表和女用户表
订单表通过“已完成”和“完成中”拆分为“已完成订单”和“未完成订单”
产品表 未完成订单放一个server上
    已完成订单表盒男用户表放一个server上
女用户表放一个server上(女的爱购物)
 
推荐教程:http://www.tuicool.com/articles/fYVBN32
分享到:
评论

相关推荐

    MySQL 表的垂直拆分和水平拆分

    MySQL 数据库在面对大规模数据存储时,为了保持良好的性能和可管理性,常常需要对表进行拆分,即垂直拆分和水平拆分。这两种拆分策略分别针对数据的不同维度进行优化。 **垂直拆分** 垂直拆分是基于列的拆分方式,...

    关于数据库表拆分.docx

    又拍网通过垂直拆分和水平拆分的结合,以及合理的数据分配算法,成功地解决了照片分享社区的数据库压力问题,为其他类似服务提供了有价值的参考经验。在不断变化的技术环境中,持续优化数据库架构,以适应业务增长和...

    架构师修炼笔记 MySQL架构设计之数据库拆分技术方法 共45页.pptx

    本篇笔记主要探讨了MySQL数据库的拆分技术,包括CAP原则、可扩展性原则以及垂直拆分和水平拆分的实践。 首先,CAP原则是分布式系统设计的基础,它指出任何分布式系统只能同时满足一致性(C)、可用性(A)和分区...

    MySQL迁移、拆分技巧.pptx

    常见的拆分方式包括水平拆分和垂直拆分。 ##### 水平拆分 水平拆分是指将一张大表按照某种规则拆分成多张表,每张表包含原表的一部分数据。这种拆分方式能够有效减少单一表的数据量,从而提高查询速度。 - **拆分...

    MySQL数据库设计、优化

    7. **数据分片**:将冷热数据进行水平拆分,遵循最近最少使用(LRU)原则,以优化访问速度。 8. **统计查询优化**:禁止直接运行COUNT(*)统计大数据表,采用更高效的统计方法。 ##### 命名规范 1. **字符限制**:...

    图书管理系统MySQL数据库

    随着图书数量和用户量的增长,数据库需要具备良好的扩展性,如垂直分割(将表拆分到多个服务器)和水平分割(将数据分布到多个表)。 11. **错误处理和日志记录**: 为了追踪和解决可能出现的问题,系统应记录...

    分布式MySQL数据库中间件,支持数据的水平、垂直拆分,支持分库分表,支持读写分离,支持结果集合并,支持故障自动切换。.zip

    分布式MySQL数据库中间件是应对大数据量、高并发场景下的解决方案,它通过将单一数据库扩展到多个物理节点,实现数据的水平或垂直拆分,以提高系统的处理能力和可用性。在这个主题中,我们将深入探讨分布式MySQL...

    MySQL数据库设计、优化.pptx

    MySQL数据库设计与优化是数据库管理中的重要环节,它关乎到系统的性能、稳定性和可扩展性。本讲座由叶金荣分享,主要涵盖了多个关键方面,包括规范、基础规范、命名规范、库表规范、字段规范、索引规范以及开发环境...

    MySQL 数据库如何解决高并发问题

    MySQL 数据库在面对高并发场景时,需要采取一系列优化措施以确保系统稳定性和性能。以下是一些关键的优化策略: 1. **短距离**:优化数据传输路径,减少数据库访问延迟。 - **页面静态化**:对于不常变化的页面,...

    MySQL数据库优化攻略

    垂直拆分和水平拆分是解决单表数据量过大的常用手段。垂直拆分是指按照功能将表分散到不同的数据库或表中;水平拆分则是将数据按照某种规则分布到多个表或数据库中,以此减少单表数据量,提高查询效率。 5. 系统级...

    mysql一个很强大的数据库

    9. **扩展性**:随着数据量的增长,可以通过分区、索引优化、垂直拆分和水平拆分等方法提升性能。 10. **社区支持**:MySQL有一个庞大的开发者社区,用户可以在论坛、Stack Overflow等平台上找到问题的解决方案,...

    大数据时代关系数据库MySQL的创新与发展.docx

    为了克服性能瓶颈,MySQL采取了多种策略,例如水平扩展(Sharding)和垂直扩展(Scaling),以及引入缓存机制(如InnoDB Buffer Pool)来优化读写效率。同时,MySQL也在增强其对大数据分析的支持,如支持复杂查询和...

    MySQL 数据库面试题

    6. 垂直和水平拆分:根据业务需求,将数据分离到不同的数据库或表中。 7. 使用读写分离:主库处理写操作,从库处理读操作,提高并发性能。 8. 调整数据库参数:根据服务器硬件和工作负载调整数据库配置,如缓冲池...

    mysql MySQL数据库开发优化与管理维护

    - **通过拆分,提高表的访问效率**:介绍水平分割和垂直分割的方法。 - **逆规范化**:通过逆规范化降低数据冗余,提高查询速度。 - **使用冗余统计表**:建立统计表来减轻查询负担。 - **选择更合适的表类型**:...

    mysql面试题(涉及索引、事务、锁)

    mysql分库分表,水平拆分和垂直拆分,水平拆分后如何路由 MySQL 索引使用的注意事项 left join,right join,inner join 说说分库与分表设计 分库与分表带来的分布式困境与应对之策(如何解决分布式下的分库分表,...

    Mycat数据库中间件技术总结

    Mycat是一种流行的数据库中间件技术,支持分库分表,主要用于解决数据库水平拆分的问题。下面是对Mycat数据库中间件技术的总结: 数据库切分理论 数据库切分是指将大型数据库分成多个小型数据库的过程。这种技术...

    MySql数据库设计技巧

    MySQL数据库设计技巧是数据库管理员和开发人员在构建高效、可靠且可扩展的数据库系统时必须掌握的核心技能。本文将深入探讨几个关键知识点,帮助你优化MySQL数据库的设计。 1. 正确选择数据类型:理解每种数据类型...

    mysql数据库高薪面试题

    - **垂直拆分与水平拆分**:理解这两种不同的数据库扩展方式及其优缺点。 6. **复制与集群** - **主从复制**:理解复制的工作原理,配置和故障恢复。 - **MySQL集群**:了解NDB Cluster和Group Replication,...

    MySQL数据库面试题.pdf

    30. **垂直分表和水平分表的区别**:垂直分表是将表拆分成多个表,每个表包含原表的一部分列;水平分表则是将表按行分成多个表。它们有助于提高性能和可扩展性。 #### 四、复制与备份 31. **MySQL复制**:MySQL...

Global site tag (gtag.js) - Google Analytics