MySQL复制的一个主要问题是slave是单线程的。 这可能会导致复制滞后。
Postgresql如何处理复制? 它(或者像slony-I这样的附加组件)允许multithreading从服务器吗?
一般来说,关于MySQl&Postgresql复制有什么优点和缺点? 我经常听说MySQL复制比postgresql复制要好。 这是一个公平的声明? 究竟有多好?
我知道所有的Mysql和Postgres复制都是单线程的。 multithreading复制是一个非常复杂的问题,因为您必须确保乱序更新不影响最终数据。
你可以通过分割你的数据并单独复制它们来完成它(至less在PostgreSQL中使用slony或其他插件)。 但是,如果它是由独立的部分组成的,那么它们之间就不需要事务完整性了,因为如果独立复制它,显然无法保持这一点。
从今天最新的MySQL版本(MySQL-5.6)doSQL-5.6开始,并行性是由数据库发生的。 这意味着你将只有一个线程在一个数据库上工作。 要打开这个function,你需要设置选项--slave-parallel-workers 。
下一个不是GA的MySQL 5.7版本支持更多的multithreading。 这意味着你可以在5.7中的同一个数据库上运行多个线程。 在5.7中,您可以使用选项--slave-parallel-type来selectmultithreading策略。
您可以在文档中find这些选项的详细信息: 复制从属选项和variables
除此之外,还有一些其他的东西,你可以在MySQL-5.7中find:改进的半同步复制,多源复制,组复制(实验室function)等等。你可以看看所有这些细节这里的工程师写的博客: http : //mysqlhighavailability.com/