国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

mysql同步問題之Slave延遲很大優(yōu)化方法

2020-01-18 22:25:09
字體:
供稿:網(wǎng)友

一般而言,slave相對master延遲較大,其根本原因就是slave上的復(fù)制線程沒辦法真正做到并發(fā)。簡單說,在master上是并發(fā)模式(以InnoDB引擎為主)完成事務(wù)提交的,而在slave上,復(fù)制線程只有一個sql thread用于binlog的apply,所以難怪slave在高并發(fā)時會遠落后master。

   ORACLE MySQL 5.6版本開始支持多線程復(fù)制,配置選項 slave_parallel_workers 即可實現(xiàn)在slave上多線程并發(fā)復(fù)制。不過,它只能支持一個實例下多個 database 間的并發(fā)復(fù)制,并不能真正做到多表并發(fā)復(fù)制。因此在較大并發(fā)負載時,slave還是沒有辦法及時追上master,需要想辦法進行優(yōu)化。

   另一個重要原因是,傳統(tǒng)的MySQL復(fù)制是異步(asynchronous)的,也就是說在master提交完后,才在slave上再應(yīng)用一遍,并不是真正意義上的同步。哪怕是后來的Semi-sync Repication(半同步復(fù)制),也不是真同步,因為它只保證事務(wù)傳送到slave,但沒要求等到確認事務(wù)提交成功。既然是異步,那肯定多少會有延遲。因此,嚴格意義上講,MySQL復(fù)制不能叫做MySQL同步(處女座的面試官有可能會在面試時把說成MySQL同步的一律刷掉哦)。

   另外,不少人的觀念里,slave相對沒那么重要,因此就不會提供和master相同配置級別的服務(wù)器。有的甚至不但使用更差的服務(wù)器,而且還在上面跑多實例。

   綜合這兩個主要原因,slave想要盡可能及時跟上master的進度,可以嘗試采用以下幾種方法:

1、采用MariaDB發(fā)行版,它實現(xiàn)了相對真正意義上的并行復(fù)制,其效果遠比ORACLE MySQL好的很多。在我的場景中,采用MariaDB作為slave的實例,幾乎總是能及時跟上master。如果不想用這個版本的話,那就老實等待官方5.7大版本發(fā)布吧;

   關(guān)于MariaDB的Parallel Replication具體請參考:Replication and Binary Log Server System Variables#slave_parallel_threads

主站蜘蛛池模板: 南澳县| 宁陕县| 手机| 东源县| 天津市| 伊川县| 仁怀市| 达孜县| 湖南省| 那曲县| 阳高县| 红安县| 那曲县| 英山县| 闽侯县| 古浪县| 宜都市| 青浦区| 祁连县| 遂平县| 东辽县| 江川县| 龙泉市| 沾益县| 朔州市| 江西省| 扶风县| 静安区| 鄄城县| 忻城县| 凤翔县| 罗山县| 安化县| 祁东县| 遂宁市| 三台县| 九龙城区| 囊谦县| 乌拉特前旗| 广饶县| 大厂|