sql - 主从复制是否确保写入显示在以后的读取中?

标签 sql database replication master-slave

这是一个关于复制的非常基本的问题。

如果你用主从复制设置你的数据库,其中写入到主服务器,读取到从服务器,这是否意味着新写入的数据直到一段时间后才会出现在读取中?

例如,假设用户在您的网站上发表评论(写:INSERT INTO comment ...),然后刷新页面(读:SELECT * FROM comment ...)。读取转到尚未复制 INSERT 语句的从站,因此评论列表返回时没有新的评论。这将有效违反 ACID 的“持久性”部分,至少暂时如此。

真的是这样吗?或者有什么方法可以确保用户始终能够阅读他们刚刚写的内容?

最佳答案

Master->Slave 复制数据库在写入 master 数据库并读取 Slave 的地方工作。当 INSERT 插入主数据库时,从数据库将包含该信息,前提是主->从数据库已配置并同步。例如,如果我写:

INSERT into TEST_TABLE (col1, col2) values ("test", 123);

如果我去slave数据库查询:

SELECT col1, col2 FROM TEST_TABLE;

我将看到我插入到 master 数据库中的值。我建议查看有关您正在使用的 SQL 风格的文档,以了解有关主-> 从复制的更多详细信息。正如评论中所提到的,您使用的 SQL 风格以及您必须启用复制频率的配置确实很重要。

关于sql - 主从复制是否确保写入显示在以后的读取中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36705946/

相关文章:

mysql - 本地和Cloud DB 2种方式复制

sql - 如何在分别选择其他列的同时合并 2 个表的单列

mySQL 子查询比 2 个单独的查询慢

sql - 调用存储过程插入多个值

c# - 向多个用户显示由另一个用户插入的数据更新

python - 在python中存储面部编码列表以进行面部识别

database - 我会通过将大表拆分成几个小表来加速关系数据库吗?

database - 基于表设计的建模类

mysql - 如何减慢 MySQL 转储速度以免影响服务器上的当前负载?

mysql - 杀死 'copying to tmp table' 的复制 MySQL 进程是否安全?