mysql复制原理及作用分析(2014-11-10)

复制原理

1. master将数据写到binlog中。

2. slave开启两个线程I/O thread和SQL thread。

3. slave的I/O thread线程连接到master,读取master上的binlog文件名称及binlog的position位置。

4. slave通过I/O thread接收master的变更信息,写入到relay log(中继日志)中。

5. 通过SQL thread读取Relay log信息进行重放到slave中。

复制解决了什么?

个人认为复制主要作用是:

1. 备份作用,备库是主库的一个备份。

2. 读写分离,主库主要负责写操作、从库负责读操作。

3. 使用多个从库可以进行读的负载均衡。

4. 主从是高可用架构的基础。

时间: 2024-10-15 04:56:30

mysql复制原理及作用分析(2014-11-10)的相关文章

mysql复制原理/基于库的多线程复制原理/基于BLGC的多线程复制原理

单线程主从复制: 从库向主库请求binlog,并将binlog转存到自己的relaylog中,从库重做binlog里面的sql, 主要由以下三个线程完成. dump thread: 在主库上,发送binlog io thread: 在slave上,接收,转存,请求binlog sql thread :在slave 上,重做binlog 基于库的多线程复制原理: 从库向主库请求binlog,并将binlog转存到自己的relaylog中,从库重做binlog里面的sql, 主要由以下三个线程完成.

mysql复制原理与机制一

复制原理:复制需要二进制日志记录数据库上的改变 slave的IO线程复制把master上的Binary log读取到本地的relay log里SQL线程负责把relay log恢复到数据库数据里

[转]MySQL排序原理与案例分析

这篇文章非常好,就把他转过来 前言      排序是数据库中的一个基本功能,MySQL也不例外.用户通过Order by语句即能达到将指定的结果集排序的目的,其实不仅仅是Order by语句,Group by语句,Distinct语句都会隐含使用排序.本文首先会简单介绍SQL如何利用索引避免排序代价,然后会介绍MySQL实现排序的内部原理,并介绍与排序相关的参数,最后会给出几个“奇怪”排序例子,来谈谈排序一致性问题,并说明产生现象的本质原因. 1.排序优化与索引使用      为了优化SQL语句

MySQL排序原理与案例分析

前言      排序是数据库中的一个基本功能,MySQL也不例外.用户通过Order by语句即能达到将指定的结果集排序的目的,其实不仅仅是Order by语句,Group by语句,Distinct语句都会隐含使用排序.本文首先会简单介绍SQL如何利用索引避免排序代价,然后会介绍MySQL实现排序的内部原理,并介绍与排序相关的参数,最后会给出几个“奇怪”排序例子,来谈谈排序一致性问题,并说明产生现象的本质原因. 1.排序优化与索引使用      为了优化SQL语句的排序性能,最好的情况是避免排

MYSQL复制原理及其流程

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

通过MySQL存储原理来深度分析排序和锁

先抛出几个问题 1.为什么不建议使用订单号作为主键? 2.为什么要在需要排序的字段上加索引? 3.for update 的记录不存在会导致锁住全表? 4.redolog 和 binlog 有什么区别? 5.MySQL 如何回滚一条 sql ? 6.char(50) 和 varchar(50) 效果是一样的么? 索引知识回顾 对于 MySQL 数据库而言,数据是存储在文件里的,而为了能够快速定位到某张表里的某条记录进行查询和修改,我们需要将这些数据以一定的数据结构进行存储,这个数据结构就是我们说的

mysql复制原理

1. Master接收写操作,写入binlog 2. Slave上IO_THREAD连接master上,请求变更日志 3. IO_thread 接收到日志请求后写入relay-log中 4. slave上SQL_THREAD读取Relay-log,执行里面的SQL,把结果同步到Datafile

东软老师上课笔记 2014.11.10 数组和List 的区别

数组 list 的区别 数组的特点: 数组的声明方式: 数组类型[] 数组名 = new 数据类型[长度]: 数据类型[] 数组名 ={值1,值2,值3....值n}: 数据类型 []数组名 = {}:不推荐 Int[]nums Product pro = new Product(): 栈(存储变量或者基本数据类型):pro 同时存储了地址: 堆(引用类型的数据) new Product()

【MySQL】排序原理与案例分析

前言 排序是数据库中的一个基本功能,MySQL也不例外.用户通过Order by语句即能达到将指定的结果集排序的目的,其实不仅仅是Order by语句,Group by语句,Distinct语句都会隐含使用排序.本文首先会简单介绍SQL如何利用索引避免排序代价,然后会介绍MySQL实现排序的内部原理,并介绍与排序相关的参数,最后会给出几个"奇怪"排序例子,来谈谈排序一致性问题,并说明产生现象的本质原因. 排序优化与索引使用 为了优化SQL语句的排序性能,最好的情况是避免排序,合理利用索