mycat读写分离性能测试
1. MySQL主从配置
我们的方案设计基于Mysql的主从数据复制功能,以下是基于mysql5.5以上版本最新的主从配置。
开启mysql主从数据复制,主要在mysql的my.ini文件中设置:
windows系统一般在c:\ProgrameData\MySQL中:
Linux系统一般在 /etc/my.cnf中:

1、主数据库服务器配置:
server-id=1
log-bin=mysql-bin
binlog-do-db=Industry //只同步Industry数据库
binlog-ignore-db=mysql //避免同步mysql用户配置,以免不必要的麻烦
binlog-ignore-db=performance_schema
binlog-ignore-db=information_schema
2、创建一个允许从服务器来访问的用户(主服务器):
grant replication slave on *.* to 'root'@'192.168.0.58'
identified by 'root';
说明:
- root:Slave使用的账号
- IDENTIFIED BY 'root' :Slave使用的密码
- 192.168.1.58:Slave数据库IP
master端,通过show master
status\G 显示信息。如图:

注意上图中的File,和Position。Slave 中会用到这些信息。
3、从数据库服务器配置:
server-id=11 //服务Id,注意要和master的server-id不一样
log-bin=mysql-bin
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
sync_master_info=1
sync_relay_log=1
sync_relay_log_info=1
4、关联上Master信息:
change master to
master_host='192.168.0.68',master_user='root',master_port=3306,master_password='root',master_log_file='mysql-bin.000001',master_log_pos=120;
命令说明:
- master_host:master 数据库服务器ip
- master_user: master 数据库通过GRANT授权的账号
- master_port:master 数据库使用的端口号
- master_password:master 数据库通过GRANT授权的密码
- master_log_file:master数据库中通过show master status显示的File名称
- master_log_pos:master数据库中通过show master status显示的Position数据
重启Slave 的MySql服务
在命令行中输入start slave.
在命令行中输入show slave status,显示如下:

注意:只有Slave_IO_Running与Slave_SQL_Running都为Yes才配置成功。
至此,配置全部完成。这样,Master服务器上Industry里的数据就能同步到slave的Industry数据库中。
2. 主从配置的MySQL创建表方式
由于Mysql已经配置好了主从复制,在创建表时,我们要注意,在Master库中创建表后,Mysql会自动在Slave库中创建一张表。这里我们需要做的是,将从库中自动创建的表删除,然后手动创建一张我们符合我们需求的表。具体操作步骤如下:
- 在主库中创建表A,引擎选择Innodb;
- 删除从库中自动创建的表A;
- 在从库中创建表A,引擎选择MyISAM;
建表带sql引擎语句样例:
CREATE
TABLE table1 (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
name TEXT
) TYPE= InnoDB
CREATE
TABLE table1 (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
name TEXT
) TYPE=MyISAM
3. 启用Mycat的读写分离机制
最后启用Mycat的读写分离机制即可。
4. 两种模式的执行时间比照图
再多的废话也不如实际的测试来的有效,接下来,让我们实际测试利用这种方案能给我们带来多大的执行效率。
首先,在开启mycat的读写分离机制后,如下图:

此时写入库的引擎为Innodb,读库的引擎为MyISAM,这时使用count语句,执行时间如下图:

使用like条件语句执行时间如下图:

使用等于条件语句执行时间如下图:

接下来,我们取消读写分离机制,见下图:

此时只有写入库,并且引擎为Innodb,这时使用count语句,执行时间如下图:

使用like条件语句执行时间如下图:

使用等于条件语句执行时间如下图:

总体的执行时间对比表,见下图:
|
Sql语句 |
启用读写分离机制(读库使用MyISAM) |
取消读写分离机制(读使用的是Innodb) |
|
count |
0.468秒 |
6.786秒 |
|
like |
6.022秒 |
25.818秒 |
|
= |
0.094秒 |
0.515秒 |
mycat读写分离性能测试的更多相关文章
- Mycat读写分离、主从切换、分库分表的操作记录
系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等都是系统发展迟早会遇到的技术问题问题.Mycat是一 ...
- Mycat 读写分离
简介 Mycat 是 MySQL中间件,Mycat的原理中最重要的一个动词就是'拦截',它拦截了用户发送过来的SQL语句,首先对SQL语句做了一些特定的分析:如分片分析.路由分析.读写分离分析.缓存分 ...
- web 项目 连接mycat 读写分离失效问题,
问题描述:mycat 读写分离已配好,在sql工具上查询操作是可以的,但是在项目中,读数据就走write 数据库, 解决 :环境spring +mvc +ibaites,在java中自己写j ...
- LVS+MYCAT读写分离+MYSQL同步部署手册(第三版)
1 配置MYSQL主备同步 1.1 测试环境 mysql版本:5.6.24: 操作系统内核版本:Linux-3.13-0-32 主数据库IP:192.168.10.3: 主数据库名:d ...
- LVS+MYCAT+读写分离+MYSQL主备同步部署手册
LVS+MYCAT+读写分离+MYSQL主备同步部署手册 1 配置MYSQL主备同步…. 2 1.1 测试环境… 2 1.2 配置主数据库… 2 1.2.1 ...
- 【转载】LVS+MYCAT+读写分离+MYSQL主备同步部署手册(邢锋)
LVS+MYCAT+读写分离+MYSQL主备同步部署手册 1 配置MYSQL主备同步…. 2 1.1 测试环境… 2 1.2 配置主数据库… 2 1.2.1 ...
- mysql主从同步+mycat读写分离+.NET程序连接mycat代理
背景 最近新项目需要用到mysql数据库,并且由于数据量大的原因,故打算采用1主1从(主数据库负责增.删.改操作:从数据库负责查操作)的数据库架构,在实现主从之后还要实现读写分离的代理,在网上搜寻了很 ...
- MyCat读写分离-笔记(四)
概述 Mycat能够实现数据库读写分离,不能实现主从同步,数据库的备份还是基于数据库层面的.Mycat只是数据库的中间件: Mycat读写分离配置 在MySQL中间件出现之前,对于MySQL主从集群, ...
- Mycat读写分离、主从切换学习(转)
http://blog.csdn.net/zhanglei_16/article/details/50707487 Mycat读写分离.主从切换学习问题一:分表.分库的优缺点,以及分表无法成为主流分表 ...
随机推荐
- IntelliJ IDEA SVN突然没有了
1.在IDEA中找不到 SVN 的选项了,版本控制工具中没有subversion,在setting中也无法查询到对应的svn工具,这是因为我们在idea的svn插件中把svn这个选项禁用了 解决办法: ...
- IntelliJ IDEA 常用插件
1.Alibaba Java Coding Guidelines(Java代码规约扫描插件) 阿里开发的此插件极大的改善程序员的代码质量,帮助程序员规范自己的代码 tools下可以切换中英文 地址:h ...
- Linux 修改zabbix server的web访问端口
在安装zabbix server的时候默认就安装了apache,zabbix依靠apache提供的web服务,修改Zabbix的浏览器访问端口,就是修改apache的服务端口(默认端口:80) 1.编 ...
- Json解析注解 ---@SerializedName
项目前后端交互采用的是JSON传输,因为前后端沟通不多,经常造成数据格式不统一:在不想后台改动太多下,需要使用@SerializedName解决这个问题 解析数据使用的是Gson解析的json数据 @ ...
- 关于java使用POI导出ppt ,其中表格setText 失败问题
1.导出ppt 必要的包 使用maven <dependency> <groupId>org.apache.poi</groupId> <artifactId ...
- pytorch 生成随机数
在使用PyTorch做实验时经常会用到生成随机数Tensor的方法,比如: torch.rand() torch.randn() torch.normal() torch.linespace() 在很 ...
- spring注解-“@Scope”
@Scope可用来指定Spring创建bean的方式 默认为单实例,即@Scope("singleton").IOC容器启动的时候会调用方法创建对象并放到IOC容器中,以后每次获取 ...
- C语言典型编程2
关于C的一些小而精的编程,适合希望提升编程能力的初学者学习:关键编程也就几句,但思维可以迁移到其他编程语言.同一问题,算法多种. //任意整数的任意次方取后3位(算数取位)#include<st ...
- Mysql 存储过程批量建表
CREATE DEFINER=`root`@`%` PROCEDURE `createTables`() begin declare i int; declare suffix varchar(20) ...
- chrome开发者工具实现整站截屏
我们经常要遇到将整个网站作为图片保存下来的情况,而windows系统自带的PrintScreen键只能保存当前屏幕的截图 在chrome浏览器中可以安装第三方的截图插件实现整站截图 今天我们要介绍的方 ...