`

关系数据库扩展知识总结

 
阅读更多

最近在学习分布式数据库架构相关的知识(主要是Mysql),并对数据库扩展这部分知识整理总结了一下,希望对看到的人有所帮助,也希望读者能多提建议。

-----------------------------------------------------------
关系型数据库扩展的几个步骤:
一、第一步:主从复制+读写分离
1.Mysql数据库主从复制是依据主服务器的二进制日志进行的.
2.主服务器中日志记录的操作会在从服务器中进行重放,从而实现复制.所以主服务器必须开启二进制日志.
这种复制是异步进行的,从服务器定时向主服务器请求最新日志,主服务器通过I/O线程来读取本地二进制日志,并传输给从服务器。
3.多级复制:
当存在多个从服务器同时从一个主服务器进行复制的时候,主服务器的磁盘压力会有不同程度的增长。可以采用多级复制策略解决。即Master <- Slave <- Slave模式。
4.在主服务器上对更新操作记录二进制日志,这部分性能消耗很少,差不多1%的性能影响.
5.读写分离:
将所有写操作作用于主服务器,将所有读操作作用于从服务器(前提是主从复制)。
但是把读操作平均分配到多台服务器上,应用程序不容易实现,如果某台服务器宕掉了,应用程序也不容易发现。
6.数据库反向代理服务器(Mysql Proxy、Amoeba等...)。
应用程序只需要跟反向代理服务器通信即可。
使用代理服务器可以对多个从服务器实现负载均衡和可用性检测。
关于反向代理服务器(个人理解,欢迎大家指正):
从外网访问内网的机器时,并不直接访问内网的机器,而是访问代理服务器,由代理决定访问内网的哪台机器。所谓反向就是由外网至内网。
二、第二步:垂直扩展(垂直分区)
1.当存在大量的从服务器时,代理服务器也会出现性能瓶颈,主服务器也无法承受写操作的压力了。对于频繁写操作的站点,仅仅使用主从复制+读写分离可能效果并不明显。
2.对数据库进行垂直扩展:
将没有关系或不需要join查询的表放在独立的数据库服务器上,这种方式称为垂直分区。
在数据库模型设计和程序编写时尽量减少使用联合查询。
3.垂直分区扩展:对垂直分区中的每台数据库做主从复制+读写分离。
三、第三步:水平分区(sharding)
1.当垂直扩展也达到写操作的极限时,进行水平扩展。
2.将同一数据库表中数据跟据特定的算法进行分离,保存在不同的数据库表中,以实现部署在不同的数据库服务器上。
分表:只是单台数据库服务器优化策略。但分表后的数据更易于分区,因为数据已经是分离的。
分区:比如将10张表分布在2个服务器上,要在应用程序中维护一张映射关系表。
3.分区算法
(1)哈希算法:例如userId % 10后的值写入不同服务器。优点易于实现,缺点不易于扩展,如果将10个分区修改为20个,原来的数据需要重新计算并分区。
(2)范围算法:例如userId 为1-10000的放在1张表,10001-20000的放在一张表...程序需要维护一个简单的范围映射表。
优点易于扩展,缺点老用户或者一部分Id接近的热点用户会使分区压力过大。
(3)映射关系算法(推荐):
使用一套比较复杂的算法创建一个分区的映射,应用程序已经无法通过简单的计算或配置来维护它。需要将分区映射关系写入数据库,获取分区时也先查询数据库(可使用缓存提高性能)。
这种方式保存了每条记录的分区对映关系,所以各个分区有较强的可伸缩性,可轻松的将数据从一个分区迁移到另一个分区,也可以使各个分区通过灵活的动态调节而保持平衡。
分享到:
评论

相关推荐

    数据库简单知识总结

    ### 数据库简单知识总结 #### 数据库系统概论复习记录 ##### 绪论 - **数据**:描述事物的符号记录,例如数字、文字、图形等。 - **数据库(DB)**:指长期储存在计算机内、有组织的、可共享的大量数据的集合。其...

    数据库知识点总结

    通过以上知识点的总结,我们不仅了解了数据库的基础概念、数据模型、关系模型等内容,还深入探讨了数据库管理系统的功能、数据的安全性和完整性控制以及角色和权限管理的具体操作。这些内容对于理解数据库系统的原理...

    数据库知识点总结.pdf

    20. 对象关系数据模型:扩展关系模型,支持更复杂的数据类型和操作,如元组、数组、集合。 21. 数据库恢复技术:数据转储和日志文件,用于在故障后恢复数据库至一致性状态。 22. 恢复子系统:防止和纠正因各种故障...

    数据库知识总结

    本文将深入探讨“数据库知识总结”,特别是从Oracle数据库和SQL语法的角度出发。 首先,Oracle是世界上最流行的商业关系型数据库管理系统(RDBMS)之一,由甲骨文公司开发。它支持多种数据类型,包括数值、字符串、...

    数据库系统原理重点知识点概念总结

    数据库系统原理涵盖了许多重要的知识点,这里将按照标题和描述中的要点进行详细解释: 1. 数据与信息的区别:数据是信息的载体,是符号记录下来的可识别的信息,而信息是数据的含义,反映了现实世界的存在方式或...

    数据库重要知识点梳理

    了解数据库的分类、操作命令和基本知识是构建高效、稳定和可扩展应用程序的基础。随着技术的发展,数据库系统不断进化,为了满足不同的需求,开发者可以根据实际应用场景选择合适的数据库系统,并掌握相关的操作技能...

    数据库系统基本知识点整理.docx

    它按照特定的数据模型组织和存储,旨在减少冗余、提高数据独立性和可扩展性。数据库设计的目标是为多个用户共享,确保数据的高效利用和一致性。 数据库系统,简称DBS,是在计算机系统中引入数据库后的整体构成,...

    数据库原理知识点总结

    ### 数据库原理知识点总结 #### 一、数据库系统概述 **1. 数据**: 在这里指的是描述事物的符号记录,它可以是数字、文字、图形、图像、声音等多种形式。 **2. 数据库(DB)**: 是长期储存在计算机内的、有组织的...

    数据库知识概念总结

    6. **关系模型**:关系模型是数据库的一种模型,包括关系数据结构(如二维表格)、关系操作(如选择、投影、连接等)和关系完整性约束。完整性规则包括实体完整性(主键不能为空)、参照完整性和用户定义完整性。 7...

    非关系型数据库知识点背诵总结.docx

    在面对海量数据和高并发读写时,关系型数据库的垂直扩展能力有限,而NoSQL数据库则采用水平扩展策略,通过增加硬件节点来分散数据,提升系统性能和可扩展性。NoSQL数据库的另一个优点是模式自由,可以根据业务需求...

    海南大学《数据库》知识点总结.pdf

    根据提供的信息,我们可以推断这份文档“海南大学《数据库》知识点总结.pdf”主要涉及的是数据库相关的理论和技术。尽管文档内容部分被非相关文字占据,但根据标题和描述,我们可以围绕数据库这一主题展开深入讨论,...

    数据库设计实践总结.docx

    以下是数据库设计实践总结的知识点: 1. 尽量使用数据冗余。随着磁盘容量的大幅飙升,这一点已经不会产生什么问题。固然冗余归冗余,不能把数据的关联弄的乱七八糟的。本科数据库课程中学的学问直接拿来,在实际中...

    数据库学习总结-总集

    本总结旨在深入探讨数据库的基础知识、主要类型、设计原则以及最佳实践,帮助读者从入门到精通。 一、数据库基础 1. 数据与数据库:数据是信息的基本单元,而数据库是有序地组织这些数据的系统,提供了数据的存储、...

    oracle数据库扩展表空间代码

    ### Oracle数据库扩展表空间知识点详解 #### 一、Oracle数据库表空间管理概述 在Oracle数据库中,表空间是逻辑存储单元,它将物理文件映射到数据库中的逻辑结构上。表空间由一个或多个数据文件组成,每个数据文件...

    ORACLE_数据库日常工作维护知识总结.pdf

    根据提供的文件内容,我们可以总结出以下关于Oracle数据库日常工作维护的知识点: 1. 检查数据库基本状况 - 检查Oracle实例状态:使用视图`v$instance`可以获取实例名称、主机名、启动时间、状态和数据库状态。...

    数据库原理 数据库知识

    数据库原理和数据库知识是IT行业中不可或缺的部分,尤其在学习SQL SERVER 2000这样的关系型数据库管理系统时显得尤为重要。数据库是存储、管理和检索数据的主要工具,它为各种应用程序提供了数据支持。SQL SERVER ...

    2023年sqlsever数据库知识点总结.docx

    《2023年SQL Server数据库知识点总结》 SQL Server数据库是企业级数据管理的重要工具,2023年的版本更是集成了先进的功能和技术。本文将深入探讨SQL Server数据库的基础知识,包括数据库系统、数据模型、E-R图设计...

Global site tag (gtag.js) - Google Analytics