假设我有一个汽车数据库。我有品牌和型号(FK to Makes)。我计划让用户跟踪他们的汽车。每辆汽车都有一个 FK 模型。现在,我有很多用户,我想拆分我的数据库来分配负载。 Makes 和 Models 表变化不大,但它们需要跨分片共享。我的想法是使用 MySQL 复制从品牌和型号的主数据库到每个从数据库。我的问题是:假设我不写入主数据库中的那些表,我可以安全地写入从属数据库吗?
关于这个问题,有没有办法保证一个从数据库有最新的数据?例如,有人刚刚添加了“金牛座”品牌,然后想添加他们的汽车。我能保证他们使用的从库有最新的主数据吗?
最佳答案
是的,通常您可以安全地写入未写入主服务器的从属服务器上的表。如果您独立地在从属服务器和主服务器上执行插入 auto_increment
行之类的操作,您当然会遇到问题。您应该将该表配置为完全从复制中排除,真的。
为了检查您是否拥有最新数据,SHOW SLAVE STATUS
包含一个字段 Seconds_Behind_Master
,它告诉您从属设备是否是最新的。显然你希望它为零。当然,要确定插入和复制的数据存在,您需要稍等片刻,然后看到 Seconds_Behind_Master
为零。
关于MySQL:写入从节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1517687/