MySQL 复制的一个主要问题是从属是单线程的。这可能会导致复制滞后。
Postgresql 如何处理复制?它(或诸如 slony-I 之类的附加组件)是否允许多线程从站?
一般来说,MySQl 和 Postgresql 复制的优缺点是什么?我经常听说 MySQL 复制比 postgresql 复制好。这是一个公平的说法吗?它到底好在哪里?
MySQL 复制的一个主要问题是从属是单线程的。这可能会导致复制滞后。
Postgresql 如何处理复制?它(或诸如 slony-I 之类的附加组件)是否允许多线程从站?
一般来说,MySQl 和 Postgresql 复制的优缺点是什么?我经常听说 MySQL 复制比 postgresql 复制好。这是一个公平的说法吗?它到底好在哪里?
我所知道的 Mysql 和 Postgres 的所有复制都是单线程的。多线程复制是一个非常复杂的问题,因为您必须确保无序更新不会影响最终数据。
您可以通过将数据分成几部分并独立复制它们来完成它(至少在带有 slony 或其他插件的 PostgreSQL 中)。但这只有在它由您不需要事务完整性的独立部分组成时才有效,因为如果您独立复制它显然无法保持这一点。
截至今天最新的 GA 版本的 MySQL (MySQL-5.6) doSQL-5.6,因为并行性是由数据库发生的。这意味着您将只有一个线程在一个数据库上工作。要打开此功能,您需要设置选项
--slave-parallel-workers
。下一个 MySQL 版本 5.7 还不是 GA,确实支持更多的多线程。这意味着您可以在 5.7 中让多个线程在同一个数据库上运行。在 5.7 中,您可以使用选项来选择多线程策略
--slave-parallel-type
。您可以在文档中找到这些选项的详细信息:Replication Slave Options and Variables
除此之外,您还可以在 MySQL-5.7 中找到许多其他内容,即:改进的半同步复制、多源复制、组复制(实验室功能)等。您可以在工程师在这里写的博客:http: //mysqlhighavailability.com/