在主/從數據庫複製中,所有寫入操作都會進入主機。所有的讀取都會轉到從機。主機將數據複製到從機。 當主設備將數據複製到從設備時,從設備必須執行寫操作才能鎖定行。從奴隸機讀取更快,但爲什麼?爲什麼在數據庫複製中,從機讀取速度比主機速度快
4
A
回答
3
法師是非常繁忙的
- 它並行寫入數據(這是顯而易見的)
- 它招致的磁盤I/O寫入二進制日誌,序列完成SQL收集到它的二進制日誌
- 它通過將完成的SQL從二進制日誌傳遞到從站的I/O線程(通過
SHOW PROCESSLIST;
,用戶名爲system user
)在主服務器上可見來管理複製。這可以稍微減緩奴隸與主的關係。
奴隸是不太繁忙的,因爲它...
- 序列化我爲MySQL複製
- 收集SQL經由IO線程
- 記錄SQL從IO線程的主/ O到最近的中繼日誌中
- SQL線程從中繼日誌中讀取下一個可用的SQL
- 處理一個SQL命令/一個事務通過SQL螺紋
- 如果Slave had all MyISAM and Master had all InnoDB時間,寫在從站到了外鍵約束,也不會執行任何參照完整性檢查表。沒有MVCC將不得不發生在奴隸。
將放在同一個公平的競爭從設備和主會
- 如果從站的二進制日誌啓用唯一的例外。如果從設備只是一個從設備,則不需要該設備,但如果從設備也是主設備,則不需要該設備。
- 如果多個SQL語句作爲單個InnoDB事務處理。
- 如果硬件不同
- 法師有更快的磁盤,更多的內核,更大的內存
- 奴隸是一個商品服務器
3
從屬應是很多更快,這是因爲:
- 的數據量寫入它確實是相同的主
- 的寫入從旁通所有的語法和權限檢查(所有的工作 - 這是很多 - 由主人在處理查詢時完成 - 只有數據變化被運送到奴隸)
- 它沒有其他的讀取比你正在執行作爲一個測試
- 複製是一個優化的過程,旨在儘可能快的同步速度,所以如果我們主人失敗,刮臉儘可能最新。這意味着,通過設計,必須引起從
儘可能少的工作儘可能這一切都意味着,從機下比主負載大大少。
實際上,重定向讀取到從屬是已知的性能修改。
相關問題
- 1. 爲什麼在.NET中投射速度比反射速度快?
- 2. 在latin1中查詢速度很快,utf8速度慢 - 爲什麼?
- 3. CUDA主機到設備的傳輸速度比設備到主機的傳輸速度更快
- 4. 控制iPhone攝像機快門速度
- 5. 爲什麼在F#中處理數組比速度快
- 6. 爲什麼我的網站在本地主機上速度較慢並且速度很快?
- 7. PouchDB複製速度快嗎?
- 8. 在共享主機上製作php速度非常快
- 9. 爲什麼IEnumerable速度慢,List速度很快?
- 10. SQL 2005 - 快速複製數據庫+數據的快速方法
- 11. Android手機速度
- 12. 從SQLite中的固定寬度列讀取速度更快嗎?
- 13. 加快數據庫寫入速度
- 14. 相機ISO設置/快門速度
- 15. Alpha 7相機API快門速度
- 16. Exiftool爲什麼速度慢,從標準輸入讀取內存宏;快速,小磁盤讀取
- 17. Cassandra:更大的複製因子=讀取速度更快?
- 18. 快速讀取Nexus數據庫表
- 19. EBS讀取速度
- 20. 本地主機服務器的速度
- 21. 快速排序 - 爲什麼隨機數據透視?
- 22. 快速排序分區爲什麼隨機數據樞軸?
- 23. 使文件讀取速度更快
- 24. 如何加快MongoDB中的數據讀取速度
- 25. DataGrid所選項目的更改速度比數據庫中的數據加載速度更快
- 26. 爲什麼兩個連接運行速度比OR條件快?
- 27. 爲什麼python實現miller-rabin的速度比ruby快很多?
- 28. 爲什麼$ a + = 3的執行速度比$ a = $ a + 3快?
- 29. 爲什麼.NET Sql Server的訪問速度比Excel Interop快?
- 30. 爲什麼一個工會比一個組的速度快