mysql的同步是怎么做到软实时的?
zhzhxh
2008-10-29
近期,听一个同事讲pgsql,好像它的同步实时性不是很好。它是通过在slave定期去master询问,但实际的结果,设置了1s,数据也得需要2-3s才能同步过来。
以使用mysql的经验来看,它的同步实时性很好。不知道,它的内部也是像pg那样轮询,还是有什么更高级的机制呢? |
|
oliver_peng
2008-10-31
MySQL 的复制是由三个Thread 完成,一个在Master上运行,另外两个在Slave上运行。在Master和Slave之间保持一个TCP连接。
在Master上的Binlog Dump Thread 实时监视是否有任何新的Query执行,一旦发现 新的Query就马上通过TCP连接发送到Slave. 在Slave上的slave I/O Thread一旦收到通过TCP传送过来的Query,马上将其写入本地的Slave Binlog。 在Slave上的SQL thread 实时监视Slave Binlog,一旦有新的Query, 马上执行。 因为MySQL的复制机制采用实时监控并复制,所以他的同步时间很快,如果是在同一个局域网几乎没有延迟。 |
|
zhzhxh
2008-10-31
这样说了,mysql的复制是 推的
而pg是 拉 的 感谢楼上的回答 |