MySQL:写入从节点

标签 mysql database database-design replication database-replication

假设我有一个汽车数据库。我有品牌和型号(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/

相关文章:

php - 如何根据值获取列名?不可能的?

c# - 如何在 MySQL 数据库中插入数据?

sql - 优化PostgreSQL以进行快速测试

php - 用户数据库模式 - 是否过度规范化?

java - 收到错误 HTTP 状态 405 - 此 URL 不支持 HTTP 方法 GET 但从未使用过 `get`?

mysql - 在 SQL 中设计灵活的模式设计

mysql - 自定义格式mysql查询和一列中的多个值

java - 我如何在 java 代码中优化这个 mySQL 事务?

php - 如何创建一个对大型动态数据集中的标签进行计数的性能系统

performance - 对多列的唯一约束是否有性能问题-Oracle