正确理解“读写分离”

こ雲淡風輕ζ 提交于 2019-11-30 08:41:30

很多人都把“读写分离”当做数据库性能优化的代名词。其实不然,“读写分离”并不是万能的,它只能解决某一部分性能问题。下面我写写我的理解笔记。

我们要优化数据库,提升性能,首先要对数据库的瓶颈进行分析。然后做出正确的优化方式。

那么什么是“读写分离”呢?

其实就是数据库集群,分成主库从库。主库作为写操作的数据库,多个从库作为读操作的数据库。主库和从库通过同步机制进行同步,这样的集群叫做“分组”。

“读写分离”大法解决什么性能瓶颈呢?当然是读数据库的瓶颈咯!因为锁的从在,如果在单一数据库上,就会出现写的时候不能读,读的时候不能写。那这样就会存在阻塞,对于一些场景来说这是灾难性的。为了解决这个问题,还能提升性能,我们都需要这样一个“分组框架”。

集群分组存在几个问题我们需要考量:

  1. 主从同步的问题
  2. 读线程池和写线程池独立(想想都觉得难,太难了)
  3. 还有要是线程池故障了怎么办
  4. 要是数据量太大呢,那成本就...

既然如此之“南”,那么问题来了,有没有更优秀的办法解决这个瓶颈呢?当然有了,骚年你何不用缓存啊?、

  1. 由于缓存是缓存在内存中的,你读的性能肯定要比存在磁盘里强的多吧。
  2. 而且开发起来容易很多吧
  3. 成本肯定要比你多个数据库少的多吧

当然缓存也有瓶颈;

  1. 数据量太大怎么办?
  2. 万一坏掉了怎么办?

咋办?用分布式啊!

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!