84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
為什麼讀寫分離可以提高資料庫的效能請看上面的部落格。根據資料庫常識,讀寫分離確實可以提高資料庫的效能,但各位對它的底層原理不知道是否理解。例如,一台讀,一台寫,但資料還是需要同步的,不然這個系統就沒了意義,那好了,同步的時候就不是一個寫操作嗎?那麼實質上不是一樣?
学习是最好的投资!
但是讀的時候不需要同步啊,一台讀的性能高,一台寫的性能高。 讀寫分離適用與讀遠大於寫的場景。
MySQL 使用了很多的資料庫儲存引擎,每個引擎有優點也有缺點。有些不支援事物,但是效能和速度很高;有些讀取很快,但是寫入很慢,而有些則正好相反;… 進行主從讀寫分離可以充分發揮每個資料庫引擎的優點。
你的疑問:但資料還是需要同步的。其實這也不算是同步,因為所有的資料都是單項的。應用層的資料是直接寫入主庫,但是從庫的資料則是從 binlog 恢復的,而且,最重要區別在於主庫向從庫發送 binlog 是異步的,從庫恢復資料也是異步的。
就算是沒有從庫,那麼主庫也需要把 binlog 資料寫入到硬碟或其它的電腦,以防止資料庫故障。當資料庫出現問題後,DBA 也只能從 binlog 復原先前的資料。
在你的描述中:「一台讀,一台寫」。我才你可能是個初學者吧,或是沒有參與過真實的專案。真正線上的項目都是 N 台讀寫,M 台備份。做讀寫分離後就是 N 台讀,N 台寫,M 台備份;或 1 台讀,1 台寫,M 台備份。
讀寫分離的主要目的是分擔伺服器壓力,適用於資料即時性要求不那麼嚴格的業務,可以根據需要分別配置不同的系統參數來應對不同的讀寫需求,進而提高整個業務系統的整體效能!
但是讀的時候不需要同步啊,一台讀的性能高,一台寫的性能高。 讀寫分離適用與讀遠大於寫的場景。
MySQL 使用了很多的資料庫儲存引擎,每個引擎有優點也有缺點。有些不支援事物,但是效能和速度很高;有些讀取很快,但是寫入很慢,而有些則正好相反;… 進行主從讀寫分離可以充分發揮每個資料庫引擎的優點。
你的疑問:但資料還是需要同步的。其實這也不算是同步,因為所有的資料都是單項的。應用層的資料是直接寫入主庫,但是從庫的資料則是從 binlog 恢復的,而且,最重要區別在於主庫向從庫發送 binlog 是異步的,從庫恢復資料也是異步的。
就算是沒有從庫,那麼主庫也需要把 binlog 資料寫入到硬碟或其它的電腦,以防止資料庫故障。當資料庫出現問題後,DBA 也只能從 binlog 復原先前的資料。
在你的描述中:「一台讀,一台寫」。我才你可能是個初學者吧,或是沒有參與過真實的專案。真正線上的項目都是 N 台讀寫,M 台備份。做讀寫分離後就是 N 台讀,N 台寫,M 台備份;或 1 台讀,1 台寫,M 台備份。
讀寫分離的主要目的是分擔伺服器壓力,適用於資料即時性要求不那麼嚴格的業務,可以根據需要分別配置不同的系統參數來應對不同的讀寫需求,進而提高整個業務系統的整體效能!