利用mysql proxy来实现的。
MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。 当然,主服务器也可以提供查询服务。使用读写分离最大的作用无非是环境服务器压力。
而MySQL另外一个最流行的存储引擎之一Innodb存储数据的策略是分为两种的,一种是共享表空间存储方式,还有一种是独享表空间存储方式。当使用共享表空间存储方式的时候,Innodb的所有数据保存在一个单独的表空间里面,而这个表空间可以由很多个文件组成。
一个表可以跨多个文件存在,所 以其大小限制不再是文件大小的限制,而是其自身的限制。从Innodb的官方文档中可以看到,其表空间的最大限制为64TB,也就是说,Innodb的单 表限制基本上也在64TB左右了,当然这个大小是包括这个表的所有索引等其他相关数据。
而当使用独享表空间来存放Innodb的表的时候,每个表的数据以一个单独的文件来存放,这个时候的单表限制,又变成文件系统的大小限制了。
读写分离、主从复制应用程序对于数据库而言都是写少读多,这样就可以这样设计:
主库:只负责写数据(写库,DML->insert\delete\update)
从库:只负责读数据(读库,select)
这样就可以解决如下问题:
1主从分开后,在业务请求高并发时,只在从服务器上执行查询工作,降低主服务器的压力。
2主从分开后,当主服务器有问题时,可迅速切换到从服务器,不会影响线上环境。
3备份在从服务器进行,以避免备份期间影响主服务器服务。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)