什么是读写分离?
读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。
为什么要实现读写分离?
因为数据库的“写”(写10000条数据到oracle可能要3分钟)操作是比较耗时的。
但是数据库的“读”(从oracle读10000条数据可能只要5秒钟)。
所以读写分离,解决的是,数据库的写入,影响了查询的效率。
什么时候要读写分离?
数据库不一定要读写分离,如果程序使用数据库较多时,而更新少,查询多的情况下会考虑使用,利用数据库 主从同步 。可以减少数据库压力,提高性能。当然,数据库也有其它优化方案。memcache 或是 表折分,或是搜索引擎。都是解决方法。
主从复制和读写分离的原理:
环境部署:
Master——->server1:172.25.30.1
Slave———>server2:172.25.30.2
Proxy———>server3:172.25.30.3
一:实现mysql的主从复制:
安装mysql-proxy:
[root@server3 ~]# tar zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz
[root@server3 ~]# cd /usr/local/mysql-proxy/
[root@server3 mysql-proxy]#mv mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit /usr/local/mysql-proxy
[root@server3 mysql-proxy]# useradd -r mysql-proxy
[root@server3 mysql-proxy]# id mysql-proxy
uid=498(mysql-proxy) gid=498(mysql-proxy) groups=498(mysql-proxy)
[root@server3 mysql-proxy]# mkdir etc
[root@server3 mysql-proxy]# mkdir logs
[root