上QQ阅读APP看书,第一时间看更新
2.1.5 数据库读写分离
实施一卡通项目后学校的商业发展得很好,学校经营部门提出要对一卡通系统的经营数据进行统计分析,所以该系统又增加了报表功能。可能是数据量太大,只要查询大的数据报表,整个一卡通系统就运行得非常慢,甚至不可用,导致经营部门的人员只有在晚上8点后才敢进行查询汇总统计。这类问题对于IT架构师来说都无法容忍,更别说业务部门的人员了。很快发现问题还是出在数据库上,操作数据库包含增、删、改、查,其中70%~80%的操作属于查询操作,尤其是报表全是查询。我们完全可以把数据库进行分离,主库负责写操作,也就是增、删、改操作;从库只负责读操作,也就是查询操作。然后将主库的写操作实时同步到从库中,保证从库读到的数据和主库写入的数据一致即可,如图2-5所示。
图2-5
正如一个厨师忙不过来,又请来一个做配菜的厨师,原来的厨师只负责炒菜。