MySQL\MariaDB 多线程复制初探
背景:
? ? ? MariaDB 在10.0.5就已經(jīng)支持了并行復制的功能,即從庫多線程復制的功能。MySQL最先在5.6.3中支持。目前暫時沒有用MySQL5.6的版本,故暫時只對MariaDB進行一些說明,后期會對MySQL進行說明。
? ? ? 對于replication很多同學都已經(jīng)很熟悉了,這里稍微講下,在復制過程中有3個線程:Master上的IO線程和Slave上的IO、SQL線程,復制的原理可以自己去google搜。從庫一直都是異步復制主庫的,通過SHOW SLAVE STATUS 可以查看從庫落后主庫的時間,當然這個時間不一定準確。從庫落后主庫的原因很大一部分是因為程序在主庫上執(zhí)行SQL是多線程的,而從庫復制主庫卻只有一個線程。在MariaDB10.0.0和MySQL5.6.3之前一直也是這樣。在其之后的版本里支持了多線程復制,下面來看看如何開啟,和開啟之后的效果,目前只針對MariaDB。
說明:
MariaDB在配置文件的mysqld選項組中添加:
slave-parallel-threads我手動修改成了8,該參數(shù)可以動態(tài)修改,在修改之前需要先stop slave。修改完之后的效果:
可以看到復制線程有8個。說明已經(jīng)開啟了多線程復制的功能。
MySQL在配置文件的mysqld選項組中添加:
slave_parallel_workers 采用多個sql線程,每個sql線程處理不同的database,提高了并發(fā)性能,即使某database的某條語句暫時卡住,也不會影響到后續(xù)對其它的database進行操作。如果只有一個database要同步,那么多個sql線程也沒有什么意義。多線程復制在一定程度上解決了從庫延遲主庫并且很難追上的問題,有興趣的同學可以玩玩MySQL的多線程復制。
總結(jié)
以上是生活随笔為你收集整理的MySQL\MariaDB 多线程复制初探的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库优化案例
- 下一篇: mongodb 索引建立问题