Mysql支持兩種複製方式,基於行的複製和基於語句的複製。 這兩種方式都是經過在主庫上記錄二進制日誌、在備庫重放日誌的方式來實現異步的數據複製。sql
在同一時間點備庫上的數據可能與主庫存在不一致,而且沒法保證主備之間的延遲。服務器
複製一般不會增長主庫的開銷,主要是啓用二進制日誌帶來的開銷,可是出於備份或及時從崩潰中回覆的目的,這點開銷是必要的。架構
經過複製能夠將讀操做指向備庫來得到更好讀讀擴展。寫操做通常都是在主庫上寫。在一主庫多備庫讀架構中,寫操做會被執行屢次,這時候整個系統讀性能取決於寫入最慢讀那部分。併發
常見讀複製方案:負載均衡
這種複製架構實現了獲取事件和重放事件的解耦,容許這兩個過程異步進行。可是也限制了複製過程,最重要的就是主庫上併發運行的查詢在備庫上只能串行化執行。由於只有一個SQL線程來重放中繼日誌中的事件。異步