MySQL的同步相当简单,但是怎么用好同步,根据业务需求为应用层提供高性能、高可用是一个值得探讨的问题。下面讨论一下几个常见MySQL数据库架构的优缺点。
一、(多)单库结构
这个恐怕是最最简单的一种方案了,完全没有数据一致性问题。最大的缺点是无法容灾,并且只能承受较小的压力,不管压力来自读或者写。不过在分布式数据层解决方案目不暇接的今天,单库结构可以拓展成多单库结构来平分压力。数据库可以从业务上先进行垂直拆分,将关联性较强的表放在一个库中,将数据变化较小的表也放在一个库中;其次是将读写频繁的表进行水平拆分,以某字段值为基础,根据业务需求来选取适当的表路由算法。
(多)单库结构是除了环状结构之外所有复杂结构的基础,只有在此基础上合理分布数据,才能为高性能打好基础。其它数据库结构,只是更好地拓展了(多)单库结构而已。
二、MS结构
MS江湖人称主备结构。优点有两个,读写分离和实时备份。缺点也有两个,数据一致性难以保障和切换麻烦。MS结构非常适合读多写少的应用场景(比如说论坛、博客)。
从容灾的角度讲,主库和备库的一致性一定要保证。数据一致性不用多说,硬件配置和MySQL版本、各种参数配置最好都要一样,这样才能保证出问题时应用程序能够平滑地从主库切换到备库上。但是从性能角度来看,主备不一致某些时候是可以容忍的。比如说,主备库上相同的表有不同的索引。此时将查询条件不同的select语句路由到相应的库上去执行,应用得到结果集的时间将会大大缩短。
三、MM结构
MS的切换是个弱点,而且切换所带来的麻烦会随着备库的增多而逐步上升。不过好在很多应用都不需要多个备库的数据库结构。如果备库只是用来实时备份数据和承担小部分读压力,那么MM结构将会是取代MS结构的不二之选。
MM就是传说中的主主结构。MM结构中的某一个库加了read-only参数,用来确保一个时间点只存在一个可写的数据库。优点是切换迅速,在应用程序足够强壮的前提下,甚至可以做到数据库宕机时应用不停止服务。缺点也很明显,拓展性不如MS结构强。
四、复合结构
在(多)单库结构的时候我已经提到,目前流行的复杂结构数据库全部是以(多)单库结构为基础,将单点替换为MS或MM结构而形成的。
将(多)单库结构进行一定程度的替换,我们就可以获得目前流行的大部分MySQL架构了。
在资金投入有限的情况下,DBA需要在高性能、高稳定、可拓展这三个要素中玩跷跷板。
如何定位这个平衡点,还是要根据企业的现状和业务要求进行具体分析
相关推荐
MySQL数据库架构主要包括以下几个核心组件: 1. **客户端/服务器架构**: - **客户端**:通过多种编程语言接口连接MySQL服务器。 - **服务器**:处理客户端请求、执行查询、返回结果并管理数据存储。 2. **SQL层...
### MySQL数据库架构的演化观察 #### 一、架构演进的路径 MySQL作为一款广泛使用的开源关系型数据库管理系统,其架构随着技术的发展和社会需求的变化而不断进化。在阿里巴巴研究员褚霸(余锋)的研究中,我们可以...
MySQL分布式数据库MyCAT方案 MySQL分布式数据库MyCAT方案是基于 MySQL 数据库管理系统和 MyCAT 分布式数据库中间件的实践方案。该方案的主要目的是为了解决传统 MySQL 数据库的单点故障和性能瓶颈问题,提高数据库...
MySQL 云数据库架构设计旨在提供高可用性、可扩展性和安全性的云数据库解决方案,满足不同的业务需求和云平台需求。 知识点: 1. MySQL 云数据库架构设计的概念和特点 2. MySQL 8.0 的新特性和应用 3. DBaaS 的...
MySQL数据库架构优化方案 在面对日益增长的业务负载时,数据库架构的优化至关重要。本文将探讨如何通过一系列策略减轻MySQL数据库的压力,以提高系统性能。 一、引入读写分离,优化初见成效 针对业务库负载突然...
Booking.com MySQL数据库架构 Booking.com 作为全球最大的在线酒店预订网站,其数据库架构是基于 MySQL 的。 Booking.com 使用 MySQL 作为主要的线上数据库解决方案,目前是欧洲最大的 MySQL 用户。 数据库架构 ...
MySQL数据库体系架构介绍 MySQL数据库是当前最流行的开源关系型数据库管理系统,广泛应用于互联网行业、金融行业、通信行业、生产制造行业、快速消费品零售行业、物流运输行业、医疗行业、政府等领域。 MySQL数据库...
《MySQL数据库架构与运维实践》 在IT领域,MySQL数据库因其高效、稳定和开源的特点,被广泛应用在各类业务场景中。本文将深入探讨MySQL数据库的架构及其运维实践,结合私有云RDS的实践案例,解析数据库管理和优化的...
MySQL数据库架构的演进是一个长期的过程,随着技术发展和用户需求的不断变化,数据库系统经历了从简单到复杂,从单一到分布式,从集中式到云化的转变。在本文中,我们将深入探讨架构演进的路径、社区的影响以及推动...
MySQL数据库优化方案及应用主要关注的是提升数据库性能和系统稳定性,以应对高并发访问场景。在本文中,我们将深入探讨数据库优化的各种策略和技术,以及如何通过Amoeba for MySQL中间层代理和分布式数据库架构实现...
MySQL数据库的架构与历史紧密相关,因此在理解MySQL时,我们不得不回顾它的起源和发展历程。MySQL的历史可以追溯到1979年,当时Monty Widenius在一家名为TcX的小公司工作,他创建了一个用BASIC语言编写的报表工具,...
MySQL数据库是世界上最受欢迎的开源关系型数据库管理系统之一,其设计理念在于提供快速、可靠的数据存储解决方案。在《MySQL数据库原理及应用(第2版)(微课版)》中,我们通常会深入探讨数据库的基本概念、设计...
本文将深入探讨几个适用于MySQL数据库的高可用性方案,并介绍其配置和实践。 首先,高可用方案的选择需要考虑具体的业务需求。例如,单点写入和主主同步是两种常见的业务场景。单点写入指的是所有的数据写入操作都...
MySQL 与 MongoDB 数据库架构介绍 MySQL 数据库架构介绍 MySQL 是由 Oracle 公司开发、发布和支持的受欢迎的开源关系数据库管理系统(RDBMS)。MySQL 将数据存储在表中,并使用结构化查询语句(SQL)来进行数据库...
#### MySQL与Oracle数据库架构对比 - **MySQL**: - **存储引擎**:采用插件式存储引擎架构,允许开发者添加自定义存储引擎。 - **内存管理**:例如InnoDB有额外的内存池(InnodbAdditionalMemPool)、缓冲池...
因此,分布式数据库架构成为解决这一问题的有效方案之一。分布式数据库通过将数据分布在不同的物理节点上,可以实现负载均衡、提高系统整体性能以及增强系统的容错能力。 #### 二、MySQL分布式数据库的优势 1. **...
MySQL数据库优化方案旨在提高数据库性能,特别是在处理大量数据时。以下是一些关键的优化策略: 1. **索引优化**:创建适当的索引是优化查询性能的关键。在频繁用于WHERE和ORDER BY子句的列上建立索引可以显著减少...