MySQL读写分离原理

MySQL的主从复制和MySQL的读写分离两者有着紧密联系,首先部署主从复制,只有复制完了,才能在此基础上进行数据的读写分离。

读写分离就是只在主服务器上写,只在从服务器上读,基本的原理是让主数据库处理事务性查询,而从数据库处理select查询,数据库复制被用来把事务性查询导致的更新同步到集群中的从数据库。

实现步骤:通过centos系统虚拟机搭建两台服务器,主服务器和从服务器,在Linux中通过yum命令安装MySQL,确保服务正常;修改服务器server-id值,在从服务器设置只读权限,主服务器写入数据,从服务器会更新同步。

三种复制方式:

1)同步复制

主库执行完一个事务,所有的从库都执行了该事务才返回给客户端。因为需要等待所有从库执行完该事务才能返回,所以全同步复制的性能必然会受到严重的影响。需要有超时时间。

2)异步复制

MySQL默认的复制即是异步的。主库执行完客户端提交的事务后会立即将结束返回给客户端,并不关心从库是否已经接收并处理,这样就会有一个问题,主如果crash掉了,此时主上已经提交的事务可能并没有传上,如果此时,强行将从提升为主,可能导致新主上的数据不完整。

3)半同步复制

介于异步复制和全同步复制之间,主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relaylog中返回给客户端。相对于异步复制,半同步复制提高了数据的安全性,同时它也造成了一定程度的延迟,这个延迟最少是一个TCP/IP往返的时间。所以,半同步复制最好在低延迟时的网络中使用。

注:通过程序代码实现mysql读写分离自然是一个不错的选择,但是并不是所有的应用都适合在程序代码中实现读写分离,像一些大型复杂的java应用,如果在程序代码中实现读写分离对代码改动就较大,像这种应用一般会考虑使用代理层来实现。

Java中mysql的读写分离_mysql读写分离相关推荐

  1. linux中mysql主主搭建_mysql 主从配置 主主配置

    MySQL 主从( MySQL Replication) ,主要用于 MySQL 的时时备份或者读写分离.在配置之前先做一下准备工作,配置两台 mysql 服务器,如果你的机器不能同时跑两台 Linu ...

  2. linux mysql 主从分离_MySQL主从分离基本配置

    1.介绍 MySQL数据库设置读写分离,可以使对数据库的写操作和读操作在不同服务器上执行,提高并发量和响应速度.现在的网站一般大点的,都采用有数据库主从分离.读写分离,既起到备份作用也可以减轻数据库的 ...

  3. java中mysql中标点符号_java – 如何在使用JDBC从MySQL数据库中提取数据时避免丢失标点符号?...

    首先,我正在使用: Java 1.7.0_02 MySQL 5.1.50 ZendServer CE (if that matters) 我用来从Java连接到MySQL的JDBC驱动程序是com.m ...

  4. asp.net mysql 读写分离_MySQL读写分离

    MySQL读写分离 1,为啥要读写分离? 系统到了高并发阶段,数据库一定要做的读写分离了,因为大部分的项目都是读多写少.所以针对这个情况,把写操作放一个主库,主库下挂多个从库处理读操作,这样就可以支撑 ...

  5. atlas mysql 读写分离_MySQL读写分离工具Atlas

    大家好,我是anyux.本文介绍MySQL读写分离工具Atlas. Atlas介绍 原来mha构架下有三台服务器,利用率只有30%,可以使用Atlas数据库中间件提高服务器利用率.即利用从库读,主库写 ...

  6. mysql负责均衡读写分离_MySQL读写分离之负载均衡

    mysql官方文档中有这么一句话: MySQL Proxy is currently an Alpha release and should not be used within production ...

  7. mysql中从分离_Mysql主从分离

    一.什么是Mysql主从分离 将读操作和写操作分离到不同的数据库上,避免主服务器出现性能瓶颈:主服务器进行写操作时,不影响查询应用服务器的查询性能,降低阻塞,提高并发: 数据拥有多个容灾副本,提高数据 ...

  8. java中mysql数据库原理_MySql数据库索引原理

    本文主要是阐述索引机制,主要是说明存储引擎Innodb 第一部分主要从及理论层面讨论MySQL索引的数理基础. 第二部分结合MySQL数据库中InnoDB数据存储引擎中索引的实现讨论聚集索引.非聚集索 ...

  9. mysql官方读写性能_mysql读写性能测试-阿里云开发者社区

    概述和测试环境 压测的目的是为了尽量模拟真实情况.测试的表都是由10个int型字段和10个字符串型字段组成.每个测试项目都测试了myisam和innodb两个引擎.测试的方法都是用两个线程并发,一共跑 ...

最新文章

  1. 1200亿次日均位置服务响应、20亿公里日均轨迹里程,百度地图发布新一代人工智能地图生态全景
  2. sql server2005 常用语句
  3. 简易记事本实现与分析(三)主界面
  4. java实现文件名过滤器接口_Java使用文件过滤器FileFilter、FilenameFilter搜索文件
  5. “抢滩”中高端酒店,新老玩家谁会更先跑出来?
  6. Bootstrap~大叔封装的弹层
  7. C#(Sharp)操作数据库原理及案例精析(强烈建议收藏)
  8. Java对数组的操作(二)——集合与数组的切换
  9. python统计中文字符的个数_python统计中文字符数量的两种方法
  10. php判断是字符串类型,php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创...
  11. pyqt5-QFrame边框样式
  12. 为满足不同交通参与者需求,德国在道路分级及限速管理上有“高招”!
  13. win10 wifi连接不上服务器未响应,Win10连不上WiFi怎么办?Win10连不上WiFi解决方法介绍...
  14. cf - 1457C - Bouncing Ball - ( dp )
  15. 多锐运动下载 V1.2.4 官方版
  16. 手机敬业签App怎么快速添加便签内容?
  17. 亚马逊asin关键词排名追踪_亚马逊listing关键词的挖掘和布局!让产品关键词排名上首页...
  18. 计算机主板系统安装系统安装系统,重装系统_系统重装_电脑重装系统【步骤|图文教程】-太平洋IT百科手机版...
  19. html文件变成桌面背景,将HTML文档设置为Windows桌面背景(转)
  20. mysql数据库备份与恢复命令

热门文章

  1. .NET序列化工具Jil、Json.NET和Protobuf的简单测评
  2. 花生日记运营商怎么做
  3. 2021年中式烹调师(中级)报名考试及中式烹调师(中级)实操考试视频
  4. bzoj2683:简单题(树状数组套CDQ分分治)
  5. cps配置之折淘客篇
  6. 手把手教你训练自己的目标检测模型(SSD篇)
  7. Aizu - 2224
  8. Save your cats Aizu - 2224 (最大生成树)
  9. 计算机网络实验子网划分与路由器配置,实验5子网划分路由配置
  10. 鸡兔同笼:笼子里一共有鸡和兔子35只,一共有94条退, 笼子里一共有鸡和兔子共多少只