首页 / 数据库 / MySQL / MySQL&MariaDB 多线程复制初探
背景: MariaDB 在10.0.5就已经支持了并行复制的功能,即从库多线程复制的功能。MySQL最先在5.6.3中支持。目前暂时没有用MySQL5.6的版本,故暂时只对MariaDB进行一些说明,后期会对MySQL进行说明。 对于replication很多同学都已经很熟悉了,这里稍微讲下,在复制过程中有3个线程:Master上的IO线程和Slave上的IO、SQL线程,复制的原理可以自己去google搜。从库一直都是异步复制主库的,通过SHOW SLAVE STATUS 可以查看从库落后主库的时间,当然这个时间不一定准确。从库落后主库的原因很大一部分是因为程序在主库上执行SQL是多线程的,而从库复制主库却只有一个线程。在MariaDB10.0.0和MySQL5.6.3之前一直也是这样。在其之后的版本里支持了多线程复制,下面来看看如何开启,和开启之后的效果,目前只针对MariaDB。说明:MariaDB在配置文件的mysqld选项组中添加:slave-parallel-threads我手动修改成了8,该参数可以动态修改,在修改之前需要先stop slave。修改完之后的效果:可以看到复制线程有8个。说明已经开启了多线程复制的功能。MySQL在配置文件的mysqld选项组中添加:slave_parallel_workers采用多个sql线程,每个sql线程处理不同的database,提高了并发性能,即使某database的某条语句暂时卡住,也不会影响到后续对其它的database进行操作。如果只有一个database要同步,那么多个sql线程也没有什么意义。多线程复制在一定程度上解决了从库延迟主库并且很难追上的问题,有兴趣的同学可以玩玩MySQL的多线程复制。参考资料:MariaDB 多线程复制说明:https://mariadb.com/kb/en/mariadb/parallel-replication/
MySQL 多线程复制说明:http://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html#sysvar_slave_parallel_workersLinux系统教程:如何检查MariaDB服务端版本 http://www.linuxidc.com/Linux/2015-08/122382.htmMariaDB Proxy读写分离的实现 http://www.linuxidc.com/Linux/2014-05/101306.htmLinux下编译安装配置MariaDB数据库的方法 http://www.linuxidc.com/Linux/2014-11/109049.htmCentOS系统使用yum安装MariaDB数据库 http://www.linuxidc.com/Linux/2014-11/109048.htm安装MariaDB与MySQL并存 http://www.linuxidc.com/Linux/2014-11/109047.htmUbuntu 上如何将 MySQL 5.5 数据库迁移到 MariaDB 10 http://www.linuxidc.com/Linux/2014-11/109471.htm[翻译]Ubuntu 14.04 (Trusty) Server 安装 MariaDB http://www.linuxidc.com/Linux/2014-12/110048htmMariaDB 的详细介绍:请点这里
MariaDB 的下载地址:请点这里本文永久更新链接地址