• 初窥MySQL性能调优


    本文涉及: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语句是什么,可以用这个选项

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

    1
    2
    3
    4
    5
    [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%以上就说明连接数已经快要不够用了

    连接数相关查看方法
    1
    2
    show global status like 'Max_used_connections';
    show variables like 'max_connections%';
    连接数不够的原因
    • 连接数设置过低或过高
    • 慢查询导致IO阻塞,导致连接长时间不释放
    • SQL执行完,连接未释放
    修改MySQL的连接数
    1
    set global max_connections = 1024;
    慢查询

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

    查看慢SQL
    1
    show global status like 'Slow_queries’;
    出现慢查询的原因
    • 索引不合理或没有索引
    • 查询的数据量过大
    • 存在锁
    缓存命中率低

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

    缓存命中率计算方法
    1
    (Qcache_hits – Qcache_inserts) / Qcache_hits * 100%
    开启查询缓存
    1
    set session query_cache_type=on;
    提高缓存利用率
    • 使用相同的SQL,例如在MyBatist中使用#而不是$
    • 客户端与服务端使用相同的字符集
    • 增大缓存区的大小
    • insert和update会引起缓存失效

    推荐阅读

    1. SpringCloud学习系列汇总
    2. 为什么一线大厂面试必问redis,有啥好问的?
    3. 多线程面试必备基础知识汇总
    4. Java集合源码分析汇总-JDK1.8
    5. Linux常用命令速查-汇总篇
    6. JVM系列文章汇总

    博客所有文章首发于公众号《Java学习录》转载请保留
    扫码关注公众号即可领取2000GJava学习资源

    1

  • 相关阅读:
    LNOI2014LCA(树链剖分+离线操作+前缀和)
    CDQ分治与整体二分学习笔记
    BJWC2018上学路线
    NOIP2013火柴排队
    SHOI2008仙人掌图(tarjan+dp)
    作诗(分块)
    COGS314. [NOI2004] 郁闷的出纳员
    bzoj 1691: [Usaco2007 Dec]挑剔的美食家
    COGS1533.[HNOI2002]营业额统计
    bzoj1208: [HNOI2004]宠物收养所
  • 原文地址:https://www.cnblogs.com/zhixiang-org-cn/p/10977751.html
Copyright © 2020-2023  润新知