<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## **MySQL主從復制** ![](https://img.kancloud.cn/59/6c/596c6993379842cb498f7e52b1216ded_511x344.png) ### **主從復制原理:** (1)master服務器將數據的改變記錄二進制binlog日志,當master上的數據發生改變時,則將其改變寫入二進制日志中; (2)slave服務器會在一定時間間隔內對master二進制日志進行探測其是否發生改變,如果發生改變,則開始一個I/OThread請求master二進制事件 (3)同時主節點為每個I/O線程啟動一個dump線程,用于向其發送二進制事件,并保存至從節點本地的中繼日志中,從節點將啟動SQL線程從中繼日志中讀取二進制日志,在本地重放,使得其數據和主節點的保持一致,最后I/OThread和SQLThread將進入睡眠狀態,等待下一次被喚醒。 ### **也就是說:** * 從庫會生成兩個線程,一個I/O線程,一個SQL線程; * I/O線程會去請求主庫的binlog,并將得到的binlog寫到本地的relay-log(中繼日志)文件中; * 主庫會生成一個log dump線程,用來給從庫I/O線程傳binlog; * SQL線程,會讀取relay log文件中的日志,并解析成sql語句逐一執行; ### **主從復制延遲解決方案:** > Mysql 主從同步都是單線程的, master所有的`DDL`和`DML`都會寫入`binlog`中, 由于`binlog`是順序讀寫, 所以效率很高, slave的`sql Thread`將master的`DDL`和`DML`操作事件都在slave中重發.`DDL`和`DML`的IO操作是隨機的, 不是順序的, 所以成本要高很多, 另一方面由于`SQL Thread`也是單線程, 當master并發高的時候,產生的`DML`數量超出了slave`SQL Thread`的處理速度, 或者當slave有大型的query語句產生了鎖, 那么延遲就產生了. **解決方案:** * 1. 業務的持久化層的實現采用分庫架構, mysql服務器可以平行擴展, 分散壓力 * 2. 單個主庫, 多個從庫, 主寫從讀 * 3. 服務的基礎架構在業務層和持久化層間加入`memcache`或者`redis`構成的cache層. 降低mysql的讀寫壓力 * 4. 不同的業務的mysql放在不同的物理機上,分散壓力 * 5. 使用更加好的硬件設備 * 6. mysql5.7 之后使用`MTS`并發復制技術, 永久解決復制延遲問題
                  <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>

                              哎呀哎呀视频在线观看