一、讀寫分離為什么能夠提升性能
讀寫分離架構(gòu)適用的應(yīng)用:讀操作不要求數(shù)據(jù)強(qiáng)一致,一般對時延的容忍在秒級以上,如電商應(yīng)用。
數(shù)據(jù)同步對讀寫庫的性能影響:可以將寫庫的日志異步apply到讀庫中,不會對寫庫中的更新操作帶來額外鎖沖突,無非損失點網(wǎng)絡(luò)帶寬。對讀庫來說,就是不斷做批量的更新操作唄,由于讀庫操作簡單,可以采用nosql數(shù)據(jù)庫。
讀寫分離主要目的是提高系統(tǒng)吞吐量。某些網(wǎng)站同一時間有大量的讀操作和較少的寫操作。同時,讀操作對數(shù)據(jù)的實時性要求并沒有那么高。在此前提下,可以這么設(shè)計解決方案。
所以你問題里“數(shù)據(jù)仍然需要同步”這個理解是不對的。事實上,正是由于允許用戶讀到幾秒鐘甚至幾分鐘前的數(shù)據(jù),才可以使用讀寫分離的。
延伸閱讀:
二、NoSQL數(shù)據(jù)庫在大數(shù)據(jù)時代的優(yōu)勢
NoSQL數(shù)據(jù)庫在大數(shù)據(jù)時代有著巨大的優(yōu)勢。NoSQL數(shù)據(jù)庫一直以性能、可擴(kuò)展性、靈活的模式和分析能力聚焦著人們的注意力。盡管關(guān)系型數(shù)據(jù)庫對于某些用例來說仍是一個不錯的選擇,就像結(jié)構(gòu)數(shù)據(jù)和要求ACID事務(wù)的應(yīng)用。
1、存儲的數(shù)據(jù)實質(zhì)上是半結(jié)構(gòu)化或者松散的;
2、要求一定的等級的性能和擴(kuò)展性;
3、存取該數(shù)據(jù)的應(yīng)用與最終的一致性相吻合;
4、靈活的模式;
5、無共享架構(gòu);
6、分片作為數(shù)據(jù)存儲模型的一部分;
7、異步復(fù)制;
8、使用BASE替代ACID事務(wù)。