数据库性能测试实践:慢查询统计分析

这篇具有很好参考价值的文章主要介绍了数据库性能测试实践:慢查询统计分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

01、慢查询

数据库性能测试实践:慢查询统计分析,软件测试工程师,软件测试,自动化测试,数据库,软件测试,自动化测试,功能测试,程序人生,职场和发展

查看是否开启慢查询

mysql> show variables like '%slow%’;

如图所示:

数据库性能测试实践:慢查询统计分析,软件测试工程师,软件测试,自动化测试,数据库,软件测试,自动化测试,功能测试,程序人生,职场和发展

  • 系统变量log_slow_admin_statements
    表示是否将慢管理语句例如ANALYZE TABLE和ALTER TABLE等记入慢查询日志
  • 启用log_slow_extra系统变量
    (从MySQL 8.0.14开始提供)将导致服务器将几个额外字段写入日志
  • Log_slow_slave_statements
    从库默认是不写入慢查询的,开启之后从库慢查询日志写入
  • slow_query_log
    这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句

开启慢查询方法:

mysql> set global slow_query_log=‘ON’
  • slow_query_log_file
    记录日志的文件名
  • slow_launch_time=#
    表示如果建立线程花费了比这个值更长的时间,slow_launch_threads 计数器将增加

修改慢查询时间为5

Mysql > set long_query_time = 5;mysql>show global status like '%slow%’;

如图所示:

数据库性能测试实践:慢查询统计分析,软件测试工程师,软件测试,自动化测试,数据库,软件测试,自动化测试,功能测试,程序人生,职场和发展

02、Explain

可以查看sql语句的具体执行情况,索引使用情况

mysql> explain select * from servers;

数据库性能测试实践:慢查询统计分析,软件测试工程师,软件测试,自动化测试,数据库,软件测试,自动化测试,功能测试,程序人生,职场和发展

数据库性能测试实践:慢查询统计分析,软件测试工程师,软件测试,自动化测试,数据库,软件测试,自动化测试,功能测试,程序人生,职场和发展

数据库性能测试实践:慢查询统计分析,软件测试工程师,软件测试,自动化测试,数据库,软件测试,自动化测试,功能测试,程序人生,职场和发展

03、profiling

分析查询 sql执行消耗系统资源情况

mysql> select @@profiling;

如图所示:

数据库性能测试实践:慢查询统计分析,软件测试工程师,软件测试,自动化测试,数据库,软件测试,自动化测试,功能测试,程序人生,职场和发展

打开功能:

Mysql > set profiling = 1;Select * from user ;

如图所示:

数据库性能测试实践:慢查询统计分析,软件测试工程师,软件测试,自动化测试,数据库,软件测试,自动化测试,功能测试,程序人生,职场和发展

04、其它mysql测试工具

  • mysqlslap (mysql自带性能测试工具)

mysqlslap可以模拟服务器的负载,并输出计时信息。它包含在MySQL 5.1 的发行包中,应该在MySQL 4.1或者更新的版本中都可以使用。测试时可以执行并发连接数,并指定SQL 语句(可以在命令行上执行,也可以把SQL 语句写入到参数文件中)。如果没有指定SQL 语句,mysqlslap 会自动生成查询schema 的SELECT 语句。

  • MySQL Benchmark Suite (sql-bench)

在MySQL 的发行包中也提供了一款自己的基准测试套件,可以用于在不同数据库服务器上进行比较测试。它是单线程的,主要用于测试服务器执行查询的速度。结果会显示哪种类型的操作在服务器上执行得更快。

这个测试套件的主要好处是包含了大量预定义的测试,容易使用,所以可以很轻松地用于比较不同存储引擎或者不同配置的性能测试。其也可以用于高层次测试,比较两个服务器的总体性能。当然也可以只执行预定义测试的子集。这些测试大部分是CPU 密集型的,但也有些短时间的测试需要大量的磁盘I/O 操作。

这个套件的最大缺点主要有:它是单用户模式的,测试的数据集很小且用户无法使用指定的数据,并且同一个测试多次运行的结果可能会相差很大。因为是单线程且串行执行的,所以无法测试多CPU 的能力,只能用于比较单CPU 服务器的性能差别。使用这个套件测试数据库服务器还需要Perl 和BDB 的支持

  • Super Smack

Super Smack是一款用于MySQL 和PostgreSQL的基准测试工具,可以提供压力测试和负载生成。这是一个复杂而强大的工具,可以模拟多用户访问,可以加载测试数据到数据库,并支持使用随机数据填充测试表。测试定义在"smack"文件中,smack 文件使用一种简单的语法定义测试的客户端、表、查询等测试要素。

  • Database Test Suite

Database Test Suite 是由开源软件开发实验室(OSDL,Open Source DevelopmentLabs)设计的,发布在SourceForge 网站上,这是一款类似某些工业标准测试的测试工具集

例如由事务处理性能委员会(TPC,Transaction Processing Performance Council)制定的各种标准。特别值得一提的是,其中的dbt2 就是一款免费的TPC-C OLTP 测试工具(未认证)。之前本书作者经常使用该工具,不过现在已经使用自己研发的专用于MySQL 的测试工具替代了。

  • Percona's TPCC-MySQL Tool

我们开发了一个类似 TPC-C 的基准测试工具集,其中有部分是专门为MySQL 测试开发的。在评估大压力下MySQL 的一些行为时,我们经常会利用这个工具进行测试(简单的测试,一般会采用sysbench 替代),在源码库中有一个简单的文档说明。

  • sysbench

sysbench是一款多线程系统压测工具。它可以根据影响数据库服务器性能的各种因素来评估系统的性能。

例如,可以用来测试文件I/O、操作系统调度器、内存分配和传输速度、POSIX 线程,以及数据库服务器等。sysbench 支持Lua 脚本语言,Lua 对于各种测试场景的设置可以非常灵活。

sysbench 是我们非常喜欢的一种全能测试工具,支持MySQL、操作系统和硬件的硬件测试。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

数据库性能测试实践:慢查询统计分析,软件测试工程师,软件测试,自动化测试,数据库,软件测试,自动化测试,功能测试,程序人生,职场和发展

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

数据库性能测试实践:慢查询统计分析,软件测试工程师,软件测试,自动化测试,数据库,软件测试,自动化测试,功能测试,程序人生,职场和发展文章来源地址https://www.toymoban.com/news/detail-722329.html

到了这里,关于数据库性能测试实践:慢查询统计分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • YCSB对MongoDB数据库性能测试

    一、安装部署 1.1前置条件 Install Java and Maven Go to http://www.oracle.com/technetwork/java/javase/downloads/index.html 并获取 url 以将 rpm 下载到服务器。例如: w get http://download.oracle.com/otn-pub/java/jdk/7u40-b43/jdk-7u40-linux-x64.rpm?AuthParam=11232426132 -o jdk-7u40-linux-x64.rpm rpm -Uvh jdk-7u40-linux-x64.rpm 或者通过

    2024年02月06日
    浏览(49)
  • 性能测试之Mysql数据库调优

    性能调优前提:无监控不调优,对于mysql性能的监控前几天有文章提到过,有兴趣的朋友可以去看一下 1、我们在监控图表中关注的性能指标大概有这么几个:CPU、内存、连接数、io读写时间、io操作时间、慢查询、系统平均负载以及memoryOver 2、介绍下Grafana模板中各性能指标的

    2024年02月04日
    浏览(57)
  • 运行Springboot测试类查询数据库数据显示白网页

    问题 运行Springboot测试类时,查询数据库里面数据显示如下白网页 程序报如下错误   解决方案   Spring Boot应用未能启动的原因是它没有找到合适的数据库配置具体来说,它需要一个数据源(DataSource),但未能在你的配置中找出,也没有找到任何嵌入式数据库(H2, HSQL 或 Der

    2024年02月05日
    浏览(41)
  • 功能测试也可以发现数据库相关的性能问题

    很多同学认为功能测试和性能测试是严格分开的,功能测试人员无法发现性能问题。其实不是这样的,功能测试人员在验证功能时也可以发现性能问题;一些功能反而在功能测试环境不好验证,需要在性能环境上测试。     今天咱们就说一下测试涉及数据库操作的功能时如何

    2024年02月14日
    浏览(51)
  • 自学笔记——利用python开展Neo4j图数据库知识图谱构建和统计分析

    前言: 在上《高级统计学》时,老师提到结合所学知识点自行设计任务,并利用所学完成。 近期正好在学习python的编程和利用neo4j开展知识图谱构建,于是在征得老师同意下,尝试完成任务:“统计近6年社科基金,并构建知识图谱。”   入门小白自学笔记,请高手勿喷。

    2024年02月16日
    浏览(58)
  • 性能测试jmeter连接数据库jdbc(sql server举例)

    一、下载第三方工具包驱动数据库 1. 因为JMeter本身没有提供链接数据库的功能,所以我们需要借助第三方的工具包来实现。  (有这个jar包之后,jmeter可以发起jdbc请求,没有这个jar包,也有jdbc取样器,但不能发起请求。) 2. 进入maven仓库-http://mvnrepository.com/,找到想要的工

    2024年02月09日
    浏览(52)
  • 原来可以这么玩?Jmeter接口性能测试工具玩转测试Redis数据库(超详细)

    Jmeter作为当前非常受欢迎的接口测试和性能测试的工具,在企业中得到非常广泛的使用,而redis作为缓存数据库,也在企业中得到普遍使用,那如何使用jmeter来测试redis数据库呢? 今天我们就来讲一讲怎么使用jmeter来调用redis。 Jmeter准备 由于jmeter本身并没有带有redis的测试入

    2024年02月13日
    浏览(60)
  • Neo4j图数据库实践——基于知识图谱方法开发构建猪类养殖疾病问答查询系统

    Neo4j是一个开源的、高性能的图形数据库。它被设计用于存储、检索和处理具有复杂关系的大规模数据。与传统的关系型数据库不同,Neo4j使用图形结构来表示数据,其中节点表示实体,边表示实体之间的关系。这使得Neo4j在处理关系密集型数据时非常强大和高效。 以下是Ne

    2024年02月07日
    浏览(67)
  • 使用免费负载生成器swingbench对oracle数据库进行压力测试(测试Oracle的功能或评估性能)

    Swingbench 是一个免费负载生成器(和基准测试),旨在对 Oracle 数据库 进行压力测试。目前最新版本 Swingbench 2.6。 SwingBench 由负载生成器,协调器和集群概述组成。该软件可以生成负载 并绘制交易/响应时间图表。 Swingbench 可用于演示和测试技术,例如实际应用程序集群,在线

    2024年02月10日
    浏览(60)
  • 性能测试工具jmeter对数据库mysql进行性能测试(压测保姆级教程)

    打开mysql官网:MySQL 找到mysql connectors,选择操作系统独立版本,将下载jar包导入到jmeter的lib目录下。 参考文档:https://www.jb51.net/article/190860.htm 1、添加测试计划 2、添加JDBC request 3、添加JDBC connection configuration,并修改配置 1、Cannot create PoolableConnectionFactory (Communications link fai

    2024年02月02日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包