MySQL复制是指从一个mysql服务器(MASTER)将数据通过日志的方式经过网络传送到另一台或多台mysql服务器(SLAVE),然后在slave上重放(replay或redo)传送过来的日志,以达到和master数据同步的目的。MySQL复制属于比较成熟的技术,在MySQL数据库中得到广泛使用,下面我们一起来了解一下MySQL复制的优点。

MySQL 内建的复制功能是构建大型、高性能应用程序的基础。将 MySQL 的数据分布到多个系统上去,这种分布的机制是通过将 MySQL 的某一台主机的数据复制到其他主机(Slaves)上,并重新执行一遍来实现的。在复制过程中,一台服务器充当主服务器,而另一台或多台其他服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器,从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。

结合上述的MySQL复制的基本原理,总结出下面5个MySQL复制的优点:

1.提供了读写分离的能力。

MySQL复制让所有的slave都和master保持数据一致,因此外界客户端可以从各个slave中读取数据,而写数据则从master上操作。也就是实现了读写分离。

需要注意的是,为了保证数据一致性,写操作必须在master上进行。

通常说到读写分离这个词,立刻就能意识到它会分散压力、提高性能。

2.为MySQL服务器提供了良好的伸缩(scale-out)能力。

由于各个slave服务器上只提供数据检索而没有写操作,因此"随意地"增加slave服务器数量来提升整个MySQL群的性能,而不会对当前业务产生任何影响。

之所以"随意地"要加上双引号,是因为每个slave都要和master建立连接,传输数据。如果slave数量巨多,master的压力就会增大,网络带宽的压力也会增大。

3.数据库备份时,对业务影响降到最低。

由于MySQL服务器群中所有数据都是一致的(至少几乎是一致的),所以在需要备份数据库的时候可以任意停止某一台slave的复制功能(甚至停止整个mysql服务),然后从这台主机上进行备份,这样几乎不会影响整个业务(除非只有一台slave,但既然只有一台slave,说明业务压力并不大,短期内将这个压力分配给master也不会有什么影响)。

4.能提升数据的安全性。

这是显然的,任意一台MySQL服务器断开,都不会丢失数据。即使是master宕机,也只是丢失了那部分还没有传送的数据(异步复制时才会丢失这部分数据)。

5.数据分析不再影响业务。

需要进行数据分析的时候,直接划分一台或多台slave出来专门用于数据分析。这样OLTP和OLAP可以共存,且几乎不会影响业务处理性能。

MySQL复制的优点决定了MySQL数据库中复制技术存在的必然性,MySQL复制不仅仅对数据安全和业务提升有很大帮助,同时也为MySQL数据库的发展提供了更多的可能。想要学好MySQL数据库,我们必须掌握MySQL中的许多核心技术,在本站的MySQL教程中对这些MySQL核心技术都有很好的剖析,小伙伴们不要错过哦!

mysql 复制技术有什么用_简述MySQL复制的优点相关推荐

  1. mysql 执行计划 什么用_简述MySQL的执行计划的作用及使用方法

    作为程序员,难免要和数据库打交道,一般情况下,我们不是DBA ,但是又要写很多SQL,因此SQL效率就成了很大的问题.关于SQL效率优化,除了要掌握一定优化技巧外, 还得有很多经验的积累,但是这里我们 ...

  2. mysql主从复制原理详解_简述 MySQL 逻辑架构与主从复制原理。

    ↑ 点击上面 "时代Java"关注我们,关注新技术,学习新知识! 1.Mysql逻辑架构图 如果能在脑海中构建出MySql各组件之间如何协同工作的架构图,就会有助于深入理解MySq ...

  3. mysql数据库索引回表_简述 MySQL 数据库的覆盖索引与回表

    两大类索引 使用的存储引擎:MySQL5.7 InnoDB 聚簇索引 *如果表设置了主键,则主键就是聚簇索引 *如果表没有主键,则会默认第一个NOTNULL,且唯一(UNIQUE)的列作为聚簇索引 * ...

  4. mysql 分片 数据迁移_简述MySQL分片中快速数据迁移_MySQL

    推荐阅读:MySQL 数据库跨操作系统的最快迁移方法 mysql 备份与迁移 数据同步方法 操作实践背景: travelrecord表定义为10个分片,尝试将10个分片中的2个分片转移到第二台MySQ ...

  5. mysql数据库特点特性_简述MySQL数据库的特性和优势

    众所周知,MySQL数据库速度快.可靠性强,而且极具适应性.因此可以说,MySQL是管理内容的最好选择,尤其是对于在不需要事务化处理的情况下.本文就和大家一起来认识一下MySQL数据库,了解它的特性和 ...

  6. mysql 自动化运维工具_部署MySQL自动化运维工具inception+archer

    *************************************************************************** 部署MySQL自动化运维工具inception+ ...

  7. mysql和python的关系_八MySQL与Python

    <1>数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库, 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据. ...

  8. mac下安装mysql 5.7.11卡住_【mysql】Mac下安装mysql5.7 完整步骤,大坑已解决

    最近使用Mac系统,准备搭建一套本地web服务器环境.因为Mac系统自带PHP和apach,但是没有自带mysql,所以要手动去安装mysql,本次安装mysql最新版5.7.17. 1.官网下载 点 ...

  9. MySQL数据库实用教程考核_《MySQL数据库实用教程》郑明秋,蒙连超,赵海侠【pdf】...

    内容简介 郑明秋.蒙连超.赵海侠主编的<MySQL数据库实用教程>是作者在多年的数据库开发实践与教学经验的基础上,根据计算机相关专业的职业岗位能力需求及学生的认知规律倾心组织编写的.本教材 ...

最新文章

  1. [原创]Paros工具培训介绍
  2. .NET设计模式(3): 抽象工厂模式
  3. 网易传媒回应“变相裁员 ”说法:假消息,将提起诉讼
  4. ++[[]][+[]]+[+[]] == 10 //true
  5. 柯马机器人示教器编程_CR 17911080,COMAU柯马机器人示教器 ,编程器更换显示器维修...
  6. 用 Javascript 验证表单(form)中多选框(checkbox)值
  7. ReentranLock源码分析
  8. Java网络编程socket实现(demo)
  9. C# 专业的软件安装包
  10. 缩写月份单词python_月份的英文单词、缩写及由来
  11. python函数求导 不使用模块_Python sympy 模块常用功能(二)
  12. Zookeeper+Hadoop+Hbase完全分布搭建数据仓库安装部署说明
  13. 学习笔记(3):海量数据的交互式分析工具-Dremel
  14. android默认打开adb,android user 版本如何默认adb调试为打开(示例代码)
  15. 推荐一个好用的PDF阅读器
  16. Linux九阴真经之摧心掌残卷11(rpm和yum包管理)
  17. CTFHub-Web-密码口令-默认口令
  18. 国内趋势_国内电机定子生产制造现状及趋势
  19. 快排Java代码实现(Quick Sort)
  20. 继续访问kavkiskey

热门文章

  1. [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--防御塔(五)之高级箭塔
  2. vivo安全工程师面试_Java 架构师——阿里和vivo面试题目汇集(转)
  3. 使用 HappyPack 和 DllPlugin 来提升你的 Webpack 构建速度
  4. freeMark全解
  5. 疾病研究:一千万悬赏进行性肌营养不良治疗方法
  6. 基于 js 制作一个倒计时
  7. 实现iframe嵌套页面通信
  8. 基于AidLux+YOLOv5s-DA的路面缺陷检测系统
  9. 运动防水防汗耳机哪个牌子好、防水的运动耳机推荐
  10. 简谈基于fpga设计9/7小波变换原理