开发者社区> 技术小胖子> 正文

mysql性能测试

简介:
+关注继续查看

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,如需转载请自行联系原作者



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
mysqlslap mysql性能测试
mysqlslap是mysql自带的基准测试工具,优点:查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端 同时并发的向服务器发出查询更新,给出了性能测试数据而且提供了多种引擎的性能比较.msqlslap为mysql性 能优化前后提供了直观的验证依据,建议系统运维和DBA人员应该掌握一些常见的压力测试工具,才能准确的 掌握线上数据库支撑的用户流量上限及其抗压性等问题。
17 0
MySQL 8.0 InnoDB压缩行格式性能测试(2)
MySQL 8.0 InnoDB压缩行格式性能测试
62 0
MySQL 8.0 InnoDB压缩行格式性能测试(1)
MySQL 8.0 InnoDB压缩行格式性能测试
40 0
性能测试告诉你 mysql 数据库存储引擎该如何选?
简介 数据库存储引擎:是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL 的核心就是插件式存储引擎。
76 0
MySQL 8.0 InnoDB压缩行格式性能测试(2)
MySQL 8.0 InnoDB压缩行格式性能测试
102 0
MySQL 5.7和8.0性能测试
MySQL 5.7和8.0性能测试目录 背景前提环境测试双1模式下0 2 模式下结论背景测试mysql5.7和mysql8.0 分别在读写、只读、只写模式下不同并发时的性能(tps,qps) 前提测试使用版本为mysql5.
2514 0
MySQL 性能测试
MySQL 性能测试MySQL 查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行。最终目标是提交 SELECT 语句查找数据行,而不是排除数据行。
1119 0
Jmeter之mysql性能测试
Jmeter官网地址:https://jmeter.apache.org/ 作为开发人员,必要的性能测试还是需要掌握的,虽然配置druid可以比较直观获得sql的执行时间,那些表被访问的比较多等等,但是不能测试sql被1000次或10000次执行会怎么样?这时性能测试工具就会派上用场,它可以模拟用户访问场景 Jmeter是个很好的性能测试工具   测试mysql性能可参考如下:   1.
1314 0
+关注
技术小胖子
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
高效MySQL的N个习惯
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关镜像