1、读写分离
就是一个主库和几个从库,主库负责写,从库负责读取数据,主库的数据会被主从复制
到从库。
2、为啥要读写分离
为啥要使用数据库的读写分离呢,那是因为数据库写入效率要低于读取效率,一般系统中数据读取频率高于写入频率,单个数据库实例在写入的时候会影响读取性能,同时配置多个从库去读取可以大大提高读取的效率。
3、支持主从或者读写分离的mysql框架
MyCat、DDL、sharding-jdbc
4、mysql主从复制原理
当向主库写入数据的时候,工作线程也将增删改等操作的数据库语句写入了binlog日志,当一旦有从库链接主库的时候,主库会为每个从库建立一个输出线程用于输出binlog日志的内容,从库也会相应的建立个IO线程用于接收日志内容,并把内容存入relay log中,当写入完成后,从库会创建个SQL线程将relay log日志的内容写入从库的数据表中,以此完成主从复制。
5、mysql读写分离实现
写数据直接写入主库
读数据先从缓存中读取,消除一部分请求(消峰)
缓存读不到的数据再从从库中读取,从库越多,从库的请求数量就越小