这是一个关于复制的非常基本的问题。
如果你用主从复制设置你的数据库,其中写入到主服务器,读取到从服务器,这是否意味着新写入的数据直到一段时间后才会出现在读取中?
例如,假设用户在您的网站上发表评论(写: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/