SQL-主从数据库

问题一:为什么要使用主库(OneDataBase)和从库(TwoDataBase)呢?

主从数据库其实为了实现数据的读写分离。

问题二:那么为什么要读写分离呢?读写分离有什么好处呢?

第一:一般业务我们需要select,insert,update,delete进行数据操作。如果当我进行查询select的时候,同时对数据进行了insert,update等【独占锁】操作,其实查询数据需要等待独占锁释放才能查到数据(脏读除外)。如果我不想等待的话  可以使用读写分离这种。我不管主库(OneDataBase)进行什么操作,我查询数据一律使用从库(TwoDataBase)。

关于锁可以参考https://blog.csdn.net/u011791378/article/details/85272719

第二:索引一般我们都使用,但是如果过多的索引会影响到insert,update,delete的速度,因为数据需要从新排列。其实我们添加索引只是想要查询速度快点。

第三:可以分担数据库的压力,比如我主库(OneDataBase)和从库(TwoDataBase)可以分布在两台服务器上。

大概总结了以下四点:

1:提高服务器【读】性能的瓶颈

2:有效的避免了锁的产生(意向排他锁与意向共享锁)

3:能够合理的使用索引

4:可以数据库横向扩展

 

一般使用主从数据库的情况,是我业务上大部分查询不需要及时性,比如允许1分钟的延误。如果设计时设计所有数据必须及时显示,那么主从数据库显然就不合适了。

如果我的业务大部分数据是不需要及时性可以查询从库(TwoDataBase),那么有些数据我必须需要及时性的数据,如修改密码,应该怎么做?

 

针对于及时性数据有以下两种方法:

1:数据库只有主库(OneDataBase)和从库(TwoDataBase),查询及时性只能查询主库的数据。

2:除了主库(OneDataBase)和从库(TwoDataBase),还有临时库(ThreeDataBase)。临时库是存放最新数据的。

 

其实主从数据库库是为了主库能够快速的存储数据和从库能够快速的查询数据。

 

这个只是整理下知识点,有很多实现的方法未说明,可能也有错误理解的地方,希望大家指出。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章