很多人都把“读写分离”当做数据库性能优化的代名词。其实不然,“读写分离”并不是万能的,它只能解决某一部分性能问题。下面我写写我的理解笔记。
我们要优化数据库,提升性能,首先要对数据库的瓶颈进行分析。然后做出正确的优化方式。
那么什么是“读写分离”呢?
其实就是数据库集群,分成主库和从库。主库作为写操作的数据库,多个从库作为读操作的数据库。主库和从库通过同步机制进行同步,这样的集群叫做“分组”。
“读写分离”大法解决什么性能瓶颈呢?当然是读数据库的瓶颈咯!因为锁的从在,如果在单一数据库上,就会出现写的时候不能读,读的时候不能写。那这样就会存在阻塞,对于一些场景来说这是灾难性的。为了解决这个问题,还能提升性能,我们都需要这样一个“分组框架”。
集群分组存在几个问题我们需要考量:
- 主从同步的问题
- 读线程池和写线程池独立(想想都觉得难,太难了)
- 还有要是线程池故障了怎么办
- 要是数据量太大呢,那成本就...
既然如此之“南”,那么问题来了,有没有更优秀的办法解决这个瓶颈呢?当然有了,骚年你何不用缓存啊?、
- 由于缓存是缓存在内存中的,你读的性能肯定要比存在磁盘里强的多吧。
- 而且开发起来容易很多吧
- 成本肯定要比你多个数据库少的多吧
当然缓存也有瓶颈;
- 数据量太大怎么办?
- 万一坏掉了怎么办?
咋办?用分布式啊!
来源:CSDN
作者:Stephen_轩
链接:https://blog.csdn.net/merryxuan/article/details/103246158