读写分离,就该这么改进(转)
本文是自己对读写分离数据库方面的一些改进想法
一般做数据库读写分离的标准情况是:1台写入数据库+2台查询数据库+1个请求转发器
这样的配置容易出现这样的问题:
1. 写数据库的写入成为瓶颈
2. 查询所需时间还是很长(由于表很大导致)
下面这些办法,欢迎大家给出各自的看法
解决办法一:
1. 查询数据库:增加内存,以达到通过内存就可以获取大多数的数据,较少I/O耗时带来的延迟
2. 写入数据库:删除索引,以达到最快速的I/O写入耗时
这样做的问题是:没有针对特别耗时的查询单独处理,因此当执行某些耗时的查询时,会显得特别慢
解决办法二:
1. 查询数据库分成2种,分别为:普通数据读取数据库、特别耗时查询数据库
2. 针对“特别耗时查询数据库”进行优化,比如:定制索引、分区表、多物理磁盘等
程序中需要为上面这些点进行编码,比如要辨别出哪些是耗时的查询、自动辨别以便下次直接转发查询请求到“特别耗时查询数据库”
欢迎大家pk出不同的想法,哈哈。