怎么优化网站关键词的方法,争对银行排队做一网站,怎么劝客户做网站,网站选域名读写分离
读写分离#xff0c;基本的原理是让主数据库处理事务性增、改、删操作#xff08;INSERT、UPDATE、DELETE#xff09;#xff0c;而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库 读写分离的好处
因为数据库的“写…读写分离
读写分离基本的原理是让主数据库处理事务性增、改、删操作INSERT、UPDATE、DELETE而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库 读写分离的好处
因为数据库的“写”写10000条数据可能要3分钟操作是比较耗时的 但是数据库的“读”读10000条数据可能只要5秒钟 所以读写分离解决的是数据库的写入影响了查询的效率 mysql支持的复制类型 STATEMENT基于语句的复制。在服务器上执行sql语句在从服务器上执行同样的语句mysql默认采用基于语句的复制执行效率高。ROW基于行的复制。把改变的内容复制过去而不是把命令在从服务器上执行一遍。MIXED混合类型的复制。默认采用基于语句的复制一旦发现基于语句无法精确复制时就会采用基于行的复制。 主从复制的工作过程 Master节点将数据的改变记录成二进制日志bin log当Master上的数据发生改变时则将其改变写入二进制日志中Slave节点会在一定时间间隔内对Master的二进制日志进行探测其是否发生改变如果发生改变则开始一个I/O线程请求 Master的二进制事件同时Master节点为每个I/O线程启动一个dump线程用于向其发送二进制事件并保存至Slave节点本地的中继日志Relay log中Slave节点将启动SQL线程从中继日志中读取二进制日志在本地重放即解析成 sql 语句逐一执行使得其数据和 Master节点的保持一致最后I/O线程和SQL线程将进入睡眠状态等待下一次被唤醒 MySQL 读写分离原理
读写分离就是只在主服务器上写只在从服务器上读。基本的原理是让主数据库处理事务性操作而从数据库处理 select 查询。数据库复制被用来把主数据库上事务性操作导致的变更同步到集群中的从数据库。 MySQL 读写分离分类
基于程序代码内部实现
在代码中根据 select、insert 进行路由分类这类方法也是目前生产环境应用最广泛的。
优点是性能较好因为在程序代码中实现不需要增加额外的设备为硬件开支缺点是需要开发人员来实现运维人员无从下手。
基于中间代理层实现
代理一般位于客户端和服务器之间代理服务器接到客户端请求后通过判断后转发到后端数据库有以下代表性程序。 MySQL-Proxy。MySQL-Proxy 为 MySQL 开源项目通过其自带的 lua 脚本进行SQL 判断Atlas 是由奇虎360的Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它是在mysql-proxy 0.8.2版本的基础上对其进行了优化增加了一些新的功能特性。360内部使用Atlas运行的mysql业务每天承载的读写请求数达几十亿条。支持事物以及存储过程Amoeba 由陈思儒开发作者曾就职于阿里巴巴。该程序由Java语言进行开发阿里巴巴将其用于生产环境。但是它不支持事务和存储过程 MySQL主从复制延迟
master服务器高并发形成大量事务网络延迟主从硬件设备导致 cpu主频、内存io、硬盘io本来就不是同步复制、而是异步复制
从库优化Mysql参数比如增大innodb_buffer_pool_size让更多操作在Mysql内存中完成减少磁盘操作
从库使用高性能主机包括cpu强悍、内存加大。避免使用虚拟云主机使用物理主机这样提升了i/o方面性从库使用SSD磁盘
网络优化避免跨机房实现同步 实验 主从复制
master192.168.154.10
slave1192.168.154.20
slave2192.168.154.40 1、配置ntp文件 2、同步时间 3、主服务器配置
192.168.154.10 4、两台从服务器配置
192.168.154.20 192.168.154.40 5、验证 读写分离
master192.168.154.10
slave1192.168.154.20
slave2192.168.154.40
amoeba客户端192.168.154.50
mariadb192.168.154.60
接着主从复制的实验继续
1、安装jdk
192.168.154.10 2、装amoeba
192.168.154.50 3、主从服务器 开放amoeba权限
192.168.154.10 192.168.154.20 192.168.154.40 4、配置amoeba.xml文件 5、配置dbServers.xml文件 6、安装mariabd
192.168.154.60 7、测试主从服务器查询情况
master服务器 8、slave1、slave2 9、测试关闭slavemaster的情况 关闭两个slave服务器 是查询不到数据 10、测试客户端查看是否 为轮询策略