前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >初窥MySQL性能调优

初窥MySQL性能调优

作者头像
Java学习录
发布2019-06-13 12:49:45
6490
发布2019-06-13 12:49:45
举报
文章被收录于专栏:Java学习录Java学习录

本文涉及:MySQL自带的性能测试工具mysqlslap的使用及几个性能调优的方法

性能测试工具—mysqlslap

mysqlslap是MySQL自带的一款非常优秀的性能测试工具。使用它可以

模拟多个客户端并发向服务器发出查询、更新等请求,然后输出简单的报告

可选参数

  • --engines:代表要测试的引擎,可以有多个,用分隔符隔开
  • --iterations:代表要运行这些测试多少次
  • --auto-generate-sql :代表用系统自己生成的SQL脚本来测试
  • --auto-generate-sql-load-type: 代表要测试的是读还是写还是两者混合的(read,write,update,mixed)
  • --number-of-queries:代表总共要运行多少次查询。每个客户运行的查询数量可以用查询总数/并发数来计算
  • --debug-info 代表要额外输出CPU以及内存的相关信息
  • --number-int-cols :创建测试表的 int 型字段数量
  • -auto-generate-sql-add-autoincrement : 代表对生成的表自动添加auto_increment列
  • --number-char-cols 创建测试表的 char 型字段数量
  • --create-schema 测试的database
  • --query 使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试
  • --only-print 如果只想打印看看SQL语句是什么,可以用这个选项

如下就是一个简单的使用示例:

代码语言:javascript
复制
[root@syj ~]# mysqlslap -uroot -proot --concurrency=500 --iterations=1  --create-schema='test'  --query='select * from u_trade_pay_order limit1000;'  --number-of-queries=10

影响MySQL性能的原因

连接数不够

当连接数使用超过85%以上就说明连接数已经快要不够用了

连接数相关查看方法

代码语言:javascript
复制
show global status like 'Max_used_connections';show variables like 'max_connections%';

连接数不够的原因

  • 连接数设置过低或过高
  • 慢查询导致IO阻塞,导致连接长时间不释放
  • SQL执行完,连接未释放

修改MySQL的连接数

代码语言:javascript
复制
set global max_connections = 1024;

慢查询

原则上应该单次执行时间超过100ms的SQL就需要考虑优化的事情了

查看慢SQL

代码语言:javascript
复制
show global status like 'Slow_queries’;

出现慢查询的原因

  • 索引不合理或没有索引
  • 查询的数据量过大
  • 存在锁

缓存命中率低

若查询缓存命中率 < 95%,则表明缓存大小可能设置过低或者存在大量缓存碎片

缓存命中率计算方法

代码语言:javascript
复制
 (Qcache_hits – Qcache_inserts) / Qcache_hits * 100%

开启查询缓存

代码语言:javascript
复制
set session query_cache_type=on;

提高缓存利用率

  • 使用相同的SQL,例如在MyBatist中使用#而不是$
  • 客户端与服务端使用相同的字符集
  • 增大缓存区的大小
  • insert和update会引起缓存失效

不得不看

1.SpringCloud系列博客汇总

2.为啥一线大厂面试必问Redis,有啥好问的?

3.Java多线程面试必备基础知识汇总

4.Java集合源码分析汇总

5.Linux常用命令汇总

6.JVM系列文章汇总

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 连接数不够
  • 慢查询
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档