首页 > 数据库 >mysql主从复制原理过程

mysql主从复制原理过程

时间:2022-10-27 10:31:49浏览次数:51  
标签:10 主从复制 读写 mysql tttt 原理 服务器


mysql 的主从复制和主主复制的区别

最大区别是主从是对主操作数据,从会实时同步数据。反之对从操作,主不会同步数据,还有可能造成数据紊乱,导致主从失效。主主则是无论对那一台操作,另一个都会同步数据。一般用作高容灾方案

mysql 的主从复制和主主复制的区别

最大区别是主从是对主操作数据,从会实时同步数据。反之对从操作,主不会同步数据,还有可能造成数据紊乱,导致主从失效。主主则是无论对那一台操作,另一个都会同步数据。一般用作高容灾方案

mysql的读写分离和主从复制的区别在哪里

从目的上来说都是减小服务器压力,运转效率更高,也更有利于信息的管理

读写分: 是一个表只负责向前端展示数据,后台管理人员对数据库表进行的增删改会在另一个表里,把这两个表给他分开,各管各的,这就是读写分离

主从复制:一般就是一个表在增删改之后会及时更新到另外一个表里,保证他两数据室一样的可以说主从复制是实现读写分离的技术之一,两个是不同概念,没法直接比较。读写分离的意思是,写入的时候向 a 服务器写入,而读出的时候从 b c d 甚至更多的服务器读出;这样的架构适合于读多写少的应用,最典型的就是火车购票系统,一般我们买票的时候要先查询好多次,包括车次啊,时间啊,这都是读操作,而最后可能只买一张车票,这是写操作;做了读写分离之后,可以将资源分配到最合理的地方,不会使某些资源闲置,而另一些资源不够用;

但是读写分离必然引发主从复制,试想一共有 10 张票,买了 1 张票,读的时候如果还是读到 10 张余票就不对了,因此需要主从复制,再读的时候,就只能读到 9 张余票了;读写分离是依赖主从复制的。

但是主从复制不一定是为了读写分离,可以能是为了容灾备份。

读写分离和主从复制也不是一个层面的东西,

读写分离是编程层面的一种解决方案,

主从复制是数据库提供的一个功能。1、主从复制是用来部署两台主备数据库服务器,备数据库不停读取主服务器的bin-log日志,如果主服务器有任何修改都可以同步更新到备服务器。通过这样的方式达到数据库同步。

2、读写分离一般是针对主从两台服务器情况,主服务器负责写操作,备服务器负责读操作,这样能够缓解主服务器压力,提高系统效率。主从复制是实现读写分离的前提条件。

做读写分离时最重要的就是确保(读库和写库)数据统一,mysql主从复制可以最大程度满足数据统一。

主从复制的另一个用途是做mysql备份的。

什么是mysql 复制及其实现原理

利用mysql proxy来实现的。 MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。#表中最好没有主键,unique key等约束,不然下面的sql会出错。

insert into table_name values select * from table_name;#复制自己
mysql> create table tttt(id int(10) default 0,val int(10) default 0)engine=innod
b,default charset=utf8;
query ok, 0 rows affected (0.17 sec)
#预先插入5条数据
mysql> insert into tttt values (1,10),(1,11),(2,1),(2,2),(3,4);
query ok, 5 rows affected (0.06 sec)
records: 5 duplicates: 0 warnings: 0
#复制自己
mysql> insert into tttt select * from tttt;
query ok, 5 rows affected (0.06 sec)
records: 5 duplicates: 0 warnings: 0
#查看表,已经是10条了
mysql> select *from tttt;
+------+------+
| id| val |
+------+------+
|1 |10 |
|1 |11 |
|2 |1 |
|2 |2 |
|3 |4 |
|1 |10 |
|1 |11 |
|2 |1 |
|2 |2 |
|3 |4 |
+------+------+
10 rows in set (0.00 sec)
#再复制一次
mysql> insert into tttt select * from tttt;
query ok, 10 rows affected (0.05 sec)
records: 10 duplicates: 0 warnings: 0
#现在是20条了。
mysql> select *from tttt;
+------+------+
| id| val |
+------+------+
|1 |10 |
|1 |11 |
|2 |1 |
|2 |2 |
|3 |4 |
|1 |10 |
|1 |11 |
|2 |1 |
|2 |2 |
|3 |4 |
|1 |10 |
|1 |11 |
|2 |1 |
|2 |2 |
|3 |4 |
|1 |10 |
|1 |11 |
|2 |1 |
|2 |2 |
|3 |4 |
+------+------+
20 rows in set (0.00 sec)

标签:10,主从复制,读写,mysql,tttt,原理,服务器
From: https://blog.51cto.com/yetaotao/5800209

相关文章

  • 数据库mysql主从复制
    mysql主从复制是怎么工作的呢?说说各个线程具体做了什么吧要实现MySQL的Replication,首先必须打开Master端的BinaryLog,因为整个复制过程实际上就是Slave从Master端获取该日志......
  • ImportError: libmysqlclient.so.20: cannot open shared object file: No such file
    报错:Traceback(mostrecentcalllast):File"/usr/local/lib64/python3.6/site-packages/MySQLdb/__init__.py",line18,in<module>from.import_mysqlI......
  • MySQL 命令大全
    非常不错的总结,强烈建议保存下来,需要的时候看一看。基本操作/*Windows服务*/--启动MySQLnetstartmysql--创建Windows服务sccreatemysqlbinPath=my......
  • MySQL之——MySQL5.7以上my.cnf 配置文件详解
    简单配置,低配置服务器配置[client]#客户端设置port=3306socket=/data/mysql/data/mysql.sockdefault-character-set=utf8mb4[mysqld]user=mysql......
  • Mysql DDL 大表 遇到的问题
    一张表yunpan_item大概有十几万的数据,上面有一个FullTextindex。altertableyunpan_itemaddcolumn`data_index`bigintCOMMENT'帖子id'aftersource;......
  • MySQL 8.x 解压版的安装步骤
    点击查看代码[mysql]#设置mysql客户端默认字符集default-character-set=utf8[mysqld]#设置3306端口port=3306#设置mysql的安装目录basedir=D:\mysql-8.0......
  • jdbc入门案例学习,java如何连接mysql,如何和mysql进行连接
    在学习了java基础和mysql以及SQL语法之后,那我们可以开始学习如何程序对数据库的数据进行操作,基本操作就是,查询,新增,更新,删除,四个基本操作,也是全部操作。这节我们将通过jdb......
  • JDBC连接MySQL(简单)
    JDBC连接MySQL    加载及注册JDBC驱动程序         Class.forName("com.mysql.jdbc.Driver");         Class.forName("com......
  • Vue的双向绑定 v-model的原理
    Vue的双向绑定v-model的原理使用V-model进行绑定v-model的效果就是用户在输入的时候实际上实在修改txtVal的值,修改成用户输入的内容<inputtype="text"v-model="txt......
  • 高性能mysql 第四版 电子书 pdf
    作者:SilviaBotros/JeremyTinley出版社:O'ReillyMedia副标题:Optimization,Backups,andReplication 链接:高性能mysql第四版  HowcanyourealizeMy......