为什么复制数据库的压力会更小?
Why would a replicated database have less strain?
如果有可能就数据库复制进行高层对话,那正是我要找的。
假设我有一个复制的只读数据库,创建它的目的是将其用于报告。好处是用户不会为报告数据而敲打主数据库,这些查询被卸载到辅助数据库。但是如果我设置实时交付,现在辅助数据库正在从主数据库获取读取请求和更新语句。您复制的数据库不会容易出现故障,就像您将一个数据库同时用于事务和报告功能一样吗?
换句话说,与读写事务数据库的常见 CRUD 操作相比,任何实时复制方法(我只熟悉日志传送)的性能优势是什么运行 进入?
A没有复制你有:
- 在您的主服务器上:
- SELECT 语句,
- DML 语句,
- 报表。
如果创建复制,则:
在小学你有:
- SELECT 语句,
- DML 语句。
在你的副本上:
- DML 语句,
- 报表。
您没有从源上的 SELECT 语句生成的负载。所有基于日志的复制系统都不会将 SELECT 语句复制到复制系统。他们不更改数据,数据库日志中也没有他们的踪迹。
更高级的复制系统也不会复制已回滚的 DML 语句(使用 ROLLBACK 语句完成)。仅复制已提交的语句(以 COMMIT 语句完成)。
如果有可能就数据库复制进行高层对话,那正是我要找的。
假设我有一个复制的只读数据库,创建它的目的是将其用于报告。好处是用户不会为报告数据而敲打主数据库,这些查询被卸载到辅助数据库。但是如果我设置实时交付,现在辅助数据库正在从主数据库获取读取请求和更新语句。您复制的数据库不会容易出现故障,就像您将一个数据库同时用于事务和报告功能一样吗?
换句话说,与读写事务数据库的常见 CRUD 操作相比,任何实时复制方法(我只熟悉日志传送)的性能优势是什么运行 进入?
A没有复制你有:
- 在您的主服务器上:
- SELECT 语句,
- DML 语句,
- 报表。
如果创建复制,则:
在小学你有:
- SELECT 语句,
- DML 语句。
在你的副本上:
- DML 语句,
- 报表。
您没有从源上的 SELECT 语句生成的负载。所有基于日志的复制系统都不会将 SELECT 语句复制到复制系统。他们不更改数据,数据库日志中也没有他们的踪迹。
更高级的复制系统也不会复制已回滚的 DML 语句(使用 ROLLBACK 语句完成)。仅复制已提交的语句(以 COMMIT 语句完成)。