0%

主从同步延迟

  • mysql的主从复制都是单线程的操作,主库对所有DDL和DML产生的日志写进bin log,由于bin log是顺序写,所以效率很高。
  • master和slave之间的数据传输依靠了内部网络或专线,一般来说也是比较快的
  • slave读取master的数据写入relay log是追加日志,属于顺序io效率并不低
  • slave的sql thread线程将主库的DDL和DML操作事件在slave中重放。DML和DDL的IO操作是随机的,不是顺序,所以成本要高很多
  • 另一方面,由于sql thread也是单线程的,当主库的并发较高时,产生的DML数量超过slave的SQL thread所能处理的速度,或者当slave中有大型query语句产生了锁等待,那么延时就产生了。
阅读全文 »

原理

​ MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。

​ MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。

阅读全文 »

一、主从复制

1、概念

  • 一个master可以拥有多个slave。
  • master的复制是异步非阻塞的。
  • 客户端可以使用wait命令请求同步复制某些特定数据。
  • 正常连接情况下,master通过命令流来保持对slave的数据更新。
  • master与slave之间得到连接断开,slave在尝试与master重连后,会尝试获取与master断开期间丢失的命令流
  • 当断开期间的数据无法重新同步时,slave会请求全量更新,master将以rdb快照方式将全量数据推送给slave,之后再进行增量更新。
阅读全文 »

key过期-删除策略

定时删除

1
2
3
4
5
6
含义:
在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除
优点:
保证内存被尽快释放
缺点:
若过期key很多,删除这些key会占用很多的CPU时间,在CPU时间紧张的情况下,CPU不能把所有的时间用来做要紧的事儿,还需要去花时间删除这些key定时器的创建耗时,若为每一个设置过期时间的key创建一个定时器(将会有大量的定时器产生),性能影响严重
阅读全文 »