<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 主節點和從節點 結果集:每個保存數據庫完整數據集的節點稱之為副本 問題:有了多個結果集,如何確保所有的副本數據一致? ## MySQL主從同步的作用 1. 讀寫分離,提升數據庫性能 2. 容災恢復,主服務器不可用時,從服務器提供服務,提高可用性 3. 冗余備份,主服務器數據損壞丟失,從服務器保留備份 ## MySQL主從同步實現 1. 當有數據更改語句執行時,MySQL主庫要在更新數據的同時,寫二進制日志,將數據修改的內容記錄進入日志中。 2. MySQL從庫上運行這一些I/O進程,這個進程會監視MySQL主庫上的二進制日志,當發現修改時,會立即同步到自身的中繼日志。 3. MySQL從庫上還會運行一個SQL進程,該進程用于監視自身的中繼日志,當發現自身的中繼日志發生改變時,立即將該中繼日志改變對應的數據更改操作寫入自身的數據庫。 ## MySQL主從同步方式 MySQL主從同步有三種方式,這些方式的差異主要存在于寫入日志的內容不同,也會導致MySQL主從同步性能上的區別。 1. 基于SQL語句的復制。 基于SQL語句的復制模式的Binlog格式為STATEMENT,在這種模式下,每一條修改數據的SQL語句都會記錄到Binlog中,這樣做的優點是并不需要記錄每一條SQL語句和每一行的變化,減少了二進制日志日志量,節約了I/O。但是會導致某些情況下主、從庫數據不一致的場景。 2. 基于行的復制。 不記錄每條SQL語句,僅記錄哪條記錄數據被修改了,以及修改后的結果。這樣做的優點是不容易出現主、從庫數據不一致的場景,但是缺點在于會產生大量日志。 3. 混合模式復制。 在混合模式下,邊的復制采用基于SQL語句的復制方式,只有當該方式無法復制(比如觸發器、存儲過程等等)時,才會使用基于行的方式 ## 主從同步延遲問題 主從同步最常遇到的問題就是主從同步延遲,可以通過在從庫上執行show slave status命令查看延遲時間,Seconds_Behind_Master表示延遲的秒數。 ## 主從同步延遲的原因有哪些? 1. 從庫機器性能較差 主庫負責所有讀寫請求,從庫只用來備份,會用性能較差的機器,執行時間自然較慢。 解決方式: 增加從庫服務器性能 2. 從庫壓力更大 讀寫分離后,主庫負責寫請求,從庫負責讀請求。 互聯網應用一般讀請求更多,所以從庫讀壓力更大,占用更多CPU資源。 解決方式: 增加從庫數量,分擔讀請求壓力 3. 網絡延遲 當主庫的Bin Log文件往從庫上發送時,可能產生網絡延遲,也會導致從庫數據跟不上。 解決方式: 增加帶寬 4. 主庫有大事務 當主庫上有個大事務需要執行5分鐘,把Bin Log文件發送到從庫,從庫至少也需要執行5分鐘,所以這時候從庫就出現了5分鐘的延遲。 解決方式: 把大事務分割成小事務執行,大事務不但會產生從庫延遲,還可能產生死鎖,降低數據庫并發性能,所以盡量少用大事務。 ## 三種復制方式 ### 全同步復制技術 當主庫執行完一個事務,并且所有從庫都執行完該事務后,才給客戶端返回成功。性能不是很好,會影響用戶體驗。 對數據一致性有嚴格要求的場合,比如金融、交易之類的場景用的比較多。 ### 異步復制技術 主庫執行完后,立即返回成功,不關心從庫是否執行完成。這種方式保證了系統的可用性,但犧牲了數據的一致性。 異步復制技術大多應用在對用戶請求響應時延要求很高的場景,MySQL 集群默認的復制模式 ### 半同步復制技術 至少有一個從庫執行完成后,就給客戶端返回成功。 半同步復制技術通常有兩種方式:(一個或者一半) 1. 一種是,當主數據庫收到多個備數據庫中的**某一個**回復數據同步成功后,便可給用戶響應寫操作完成; 2. 另一種是,主數據庫等**超過一半節點**(包括主數據庫)回復數據更新成功后,再給用戶響應寫操作成功。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看