为了保证外部数据访问的效率与速率,负载分流是一种必须的手段。我们通常将主服务器作为后台的数据提供来源,而在之前将n台从服务器上线提供访问服务,此时数据一致性便成为一个很重要的问题。此时有两种策略可以利用:
1. mysql的master-slave模式,这种方法基本可以实现同步,虽然在log-bin的update上肯定有一定的延迟时间,优点是设置好服务后,我们不必要自己在用脚本控制,非常简捷,不过这种方式良好的备份策略将是非常重要的。
2. 利用脚本自动控制。在master-server上更新数据,我们这里更新数据之前删除索引,此时保证更新时间大大加快;数据更新完后,我们做重建索引,这里master-server是不上线的,对访问没有映像,所以在白天晚上做都是可以的(最好是晚上,可以保证白天用户访问的是最新数据),索引建好后,采用串行方式先后更新slave-server的数据,这里更新slave的时候也是不会映像访问的,因为此时至少另外n-1台slave-server都是可以正常访问的;另外一个优点是主从服务器之前性能上不会互相影响;在做完从服务器的数据索引更新后,主服务器删除索引,保证下次数据入库的效率。
通过比较,我们将会发现後一种策略是一种非常有效的策略。