mysql性能测试

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

1.测试环境


服务器:
CPU:2GHZ,内存:4G,物理机
系统:centos 5 32位
网络:100Mbps 局域网
客户端:
CPU:2GHZ,内存:4G
系统:centos 5 32位
数据量:1000万条记录
mysql版本:5.1.51-log

测试方法:把mysql挂到DNS软件后面,用bind的测试工具querypref测试

测试时,启动五个DNS软件进程,每个进程里开一个mysql的长连接,每次请求不关闭连接

2.测试结果
2.1mysql
2.1.1 1000万在同一张表测试

 

 
  1. CREATE TABLE `rr` (  
  2.   `beginip` int(10) unsigned DEFAULT NULL,  
  3.   `endip` int(10) unsigned DEFAULT NULL,  
  4.   `zone` varchar(256) DEFAULT NULL,  
  5.   `rrtype` tinyint(4) DEFAULT NULL,  
  6.   `data` varchar(256) DEFAULT NULL,  
  7.   `ttl` int(10) unsigned DEFAULT NULL,  
  8.   INDEX `zone_index` (`zone`) USING BTREE,  
  9.   INDEX `ipset_index` (`beginip`,`endip`) USING BTREE,  
  10.   INDEX `rrtype_index` (`rrtype`) USING BTREE  
  11. ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

sql语句:
select data,ttl from rr where domain=;
//不使用缓存
SET GLOBAL query_cache_size=0;
加索引: INDEX `zone_index` (`zone`) USING BTREE,
INDEX `ipset_index` (`beginip`,`endip`) USING BTREE,
INDEX `rrtype_index` (`rrtype`) USING BTREE
打开缓存:1.4万qps(query per second) ,单次请求时间为1~3ms
不缓存: 21qps,单次请求时间为88ms
服务器一分钟负载:2~3

发现在查询时,去更新某一条记录时,那几分钟单次请求时间为900ms,估计mysql在重新建缓存和索引导致

2.1.2 1000张表,1万条数据测试

 

 
 
  1. CREATE TABLE www_a_com_ (  
  2. beginip int(10) unsigned DEFAULT NULL,  
  3. endip int(10) unsigned DEFAULT NULL,  
  4. rrtype tinyint(4) DEFAULT NULL,  
  5. data varchar(256) DEFAULT NULL,  
  6. ttl int(10) unsigned DEFAULT NULL,  
  7. INDEX ipset_index (beginip,endip) USING BTREE,  
  8. INDEX rrtype_index (rrtype) USING BTREE  
  9. ); 

sql语句:select data,ttl from www_a_com_ where and beginip<=3232238968 and endip>=3232238968 and rrtype=1;
//使用缓存
SET GLOBAL key_buffer_size=200*1024*1024;
SET GLOBAL table_cache=1200;
SET GLOBAL thread_cache_size=60;
SET GLOBAL query_cache_size=200*1024*1024;
SET GLOBAL query_cache_limit=200*1024*1024;
SET GLOBAL table_definition_cache=1200;
SET GLOBAL thread_cache_size=60;
SET GLOBAL myisam_data_pointer_size=60;
SET GLOBAL delayed_queue_size=2000;
SET GLOBAL preload_buffer_size=65536;

加索引: INDEX `ipset_index` (`beginip`,`endip`) USING BTREE,
INDEX `rrtype_index` (`rrtype`) USING BTREE

打开缓存:1.5万qps,单次请求时间为1~3ms

不缓存: 3000qps,单次请求时间为6~7ms

服务器一分钟负载:2~4

测试时,发现在进程里启动10个连接和1一个连接的测试数据相差不大。


     本文转自yifangyou 51CTO博客,原文链接:http://blog.51cto.com/yifangyou/603490,如需转载请自行联系原作者



相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
25天前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
20 1
|
25天前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
24 1
|
1月前
|
监控 关系型数据库 MySQL
Flink CDC产品常见问题之使用3.0测试mysql到starrocks启动报错如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
2月前
|
关系型数据库 MySQL Java
Mysql专栏 - 线上调优与压力测试
Mysql专栏 - 线上调优与压力测试
85 0
|
4月前
|
关系型数据库 MySQL Shell
MySQL【实践 01】Linux 环境 MySQL 数据库备份 shell 脚本(脚本源码及说明+定时任务配置+数据库恢复测试)粘贴可以
MySQL【实践 01】Linux 环境 MySQL 数据库备份 shell 脚本(脚本源码及说明+定时任务配置+数据库恢复测试)粘贴可以
50 0
|
4月前
|
存储 关系型数据库 MySQL
MySQL批量插入测试数据的几种方式
MySQL批量插入测试数据的几种方式
62 0
MySQL批量插入测试数据的几种方式
|
5月前
|
关系型数据库 MySQL 测试技术
软件测试|MySQL BETWEEN AND:范围查询详解
软件测试|MySQL BETWEEN AND:范围查询详解
221 0
|
5月前
|
关系型数据库 MySQL 测试技术
软件测试|MySQL LIKE:深入了解模糊查询
软件测试|MySQL LIKE:深入了解模糊查询
41 0
|
5月前
|
关系型数据库 MySQL 测试技术
软件测试|MySQL WHERE条件查询详解:筛选出需要的数据
软件测试|MySQL WHERE条件查询详解:筛选出需要的数据
33 0
|
5月前
|
关系型数据库 MySQL 测试技术
软件测试|MySQL ORDER BY详解:排序查询的利器
软件测试|MySQL ORDER BY详解:排序查询的利器
197 0