当前位置:  开发笔记 > 编程语言 > 正文

MySQL复制速度

如何解决《MySQL复制速度》经验,为你挑选了1个好方法。

假设我们在局域网上有3台服务器:

APP - php应用服务器

MASTER - 掌握Mysql数据库服务器

SLAVE - 从属Mysql数据库服务器(复制MASTER)

在一个代码块(php)APP中插入MASTER,检索last_insert_id,然后使用它来选择刚从SLAVE插入的数据.

所以问题是,复制是否会及时发生,以便SLAVEMASTER获取数据?这是受MASTER还是SLAVE上的负载影响?

最后,如果数据存在问题,是否有办法确保从SLAVE收到最新数据?



1> Aea..:

因为MySQL复制时间是一个不可控制的变量(即使在正确的实现中,可能会出现停止复制或阻塞复制的问题),最好不要依赖于数据复制.您可以将问题分解为两种情况:

1)我是用户正在进行CUD操作,我希望R操作后跟镜像我刚刚做出的改变.在这种情况下,您绝对需要从主服务器中提取数据,因为用户希望他的更改产生影响.

2)我是外部用户,我不知道发生了CUD命令,我一般不关心,所以返回陈旧数据是可以接受的(99%的实现,否则你可能不会使用PHP*).

#1的替代方案是通知用户他的更改正在传播,并且在某些情况下是可接受的,例如,许多网站会告诉您x可能需要多达y分钟才会出现,这就是这种情况.

如果需要即时更新,可以尝试写入与(可能不可靠的)DB数据一起轮询的缓存层.像memcached这样的东西将是一个主要的候选人.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有