1. select 语句来查看sql 语句执行的时间
我一直使用mysql 图形化工具来操作数据库,查看某条SQL 语句执行的时间也是通过图形化工具来查看。前两天遇到了一个问题,就是 怎 么样查看一个mysql执行一个sql 表达式所需的时间,也就是执行 where 条件的时间,通过 例如我想知道
to_days(MYDATE) - to_days(now()) <1 执行一次的时间 其中 MYDATE 是数据表中的一个时间戳字段。
如果单纯的用 select to_days(MYDATE) - to_days(now()) <1 大概是0.0011秒
2. benchmark 使用方法:
这里还有一种方法能够获取到 mysql 执行一个sql 语句或sql 表达式的 时间,并且可以由用户指定执行次数。通过执行大规模次数, 才能够获得比较稳定的 sql 执行时间。
select benchmark(num, exp) ; 其中 num 为执行次数,exp 为希望获得执行时间的表达式 ,不包括 sql 语句
select benchmark(1, to_days(2011-04-07) - to_days(now()) <1 ); 执行时间大概是 0.0011秒 ,可以计算表达式时间
select benchmark(1, select * from MYTABLE limit 0,40 ); Mysql 报错,说明EXP 不能为sql 语句,只能为表达式或函数
下面是对num 赋予不同的数值,查看执行不同次数所耗费的时间
select benchmark(100, to_days(2011-04-07) - to_days(now()) <1 ); 执行时间大概也是 0.0012秒
select benchmark(10000, to_days(2011-04-07) - to_days(now()) <1 ); 执行时间大概也是 0.0056秒
select benchmark(1000000, to_days(2011-04-07) - to_days(now()) <1 ); 执行时间大概也是 0.4454秒
为什么执行100次和执行 1次的时间耗费差不多呢? 这是因为可能被注入了缓存的缘故,因此benchmark 不能用来完成一种实际的 基准测试。
3. 使用benchmark 进行执行速度比较
如果我想比较 2011-01-01>'date("Y-m-d",time()) 和 to_days(2011-04-07) - to_days(now()) <1 两个表达式中哪 个表达式执行速度更快怎么办?
select to_days(2011-01-01)-to_days(now())<1 执行时间大概也是 0.0011秒
select 2011-01-01>'date("Y-m-d",time())' 执行时间大概也是 0.0011秒
通过这种方式是无法比较的。
select benchmark(1, 2011-01-01>'date("Y-m-d",time())') 执行时间大概也是 0.0011秒
select benchmark(1, to_days(2011-04-07) - to_days(now()) <1 ); 执行时间大概也是 0.0011秒
通过这种方式也无法比较,但是我们知道,mysql 使用内置函数肯定是要耗费一定的时间的,也就是 第二个表达式比第一个表达式执行速度更慢。
但在某些场合,还是可以比较两种表达式的执行速度的:
select benchmark(1, 2011-01-01>'date("Y-m-d",time())') 执行时间大概也是 0.0011秒
select benchmark(100, 2011-01-01>'date("Y-m-d",time())') 执行时间大概也是 0.0011秒
select benchmark(10000, 2011-01-01>'date("Y-m-d",time())') 执行时间大概也是 0.0013秒
select benchmark(1, 2011-01-01>'date("Y-m-d",time())') 执行时间大概也是 0.0249秒
通过上面的比较发现 2011-01-01>'date("Y-m-d",time()) 和 to_days(2011-04-07) - to_days(now()) <1
在大数据量比较时执行速度更快。
在实际的web 网页应用中也证实了这一点。
分享到:
相关推荐
MySQL 安全标准 MySQL CIS commuity server 5.7 benchmark
支持mysql的benchmarksql,因为 BenchmarlSQL 本身是不支持 Mysql ,所以需要更改源代码以支持 Mysql。
《且将新火试新茶-MySQL Benchmark》,在Blog的文档由于格式原因不是特别理想,将文档转换为PDF格式提交上来给大家,希望大家喜欢。 使用下载资源分出于无奈,我自己的下载分不多。呵呵。 我的Blog是: ...
Security Configuration Benchmark For MySQL 4.1, 5.0, 5.1 Community Editions Version 1.0.2
BenchmarkSQL5.0,支持postgresql,oracle,mysql测试,内含jdbc,配置文件
cd mysql-benchmark ./mysql-benchmark.sh *-----------------------------------* Mysql Benchmark Test Read the README first befor you start! *-----------------------------------* 1 - install sysbench 2 ...
MySQL Benchmark Tool是一个轻量级的命令行工具,用于从先前编写MySQL-Log重复执行SQL语句。 下载 您可以在bin文件夹中找到预编译的jar: : 它做什么以及如何使用 的博客文章,其中有更详细的说明。 这是一个小...
mysql_benchmarksql的批量脚本执行,仅供测试使用。里面需要配置数据库服务器的登陆信息和benchmark的数据仓数。 脚本工具里面缺乏一些判断,如路径写的绝对路径,用户是root用户执行。还需使用者自己注意避坑。
mysql-benchmark_suite 三服务器套件在一台服务器上运行 MySQL,从另一台服务器查询 MySQL 实例并从第三台主服务器检索基准测试结果。 该项目是在的工作期间出现的,这是研究硬件事务内存的核心性能指标及其在 MySQL...
CIS_Oracle_MySQL_Enterprise_Edition_5.6_Benchmark_v1.1.0.pdf CIS_Oracle_Solaris_11.4_Benchmark_v1.0.0.pdf CIS_PostgreSQL_12_Benchmark_v1.0.0.pdf CIS_Red_Hat_Enterprise_Linux_7_Benchmark_v2.2.0.pdf CIS...
使用MySQL进行Maven部署和基准测试跑//close all IDE first//Java 11 Versionexport JAVA_HOME=/usr/lib/jvm/java-11-openjdkmvn cleanmvn installmvn exec:java结果VM 2核+ 8G threadCount = 100 , 000 batchCount ...
主要介绍了MySQL基准测试套件Benchmark安装DBI组件过程分享,,需要的朋友可以参考下
简单点说benchmarksql就是一个通过JDBC 测试OLTP 的TPC-C。 支持PostgreSQL/EnterpriseDB, DB2, Oracle, SQLSvr, MySQL,DM,Kingbase
BenchmarkSQL数据库性能测试工具,可支持Oracle,Mysql,人大金仓等
1、此为benchmarksql支持达梦数据库版本 2、兼容oracle\db2\sqlserver\mysql\postgresql\达梦dameng
CIS Oracle MySQL 5.7企业版信息安全加固基线 ,对MySQL进行安全配置可以有效的防范一些常见安全问题,按照基线标准做好安全配置能够减少安全事件的发生。国内常见的基线标准有中国信息安全等级保护、工信部基线配置...
CIS Oracle MySQL 5.7企业版信息安全加固基线 ,对MySQL进行安全配置可以有效的防范一些常见安全问题,按照基线标准做好安全配置能够减少安全事件的发生。国内常见的基线标准有中国信息安全等级保护、工信部基线配置...
BenchmarkSQL 广泛被数据库管理员、数据库开发工程师和数据库测试工程师使用,以测试其数据库系统的性能,并优化其配置以获得最佳性能。 BenchmarkSQL 测试报告生成各种性能指标,包括事务吞吐量、响应时间和 CPU ...
对Mysql的时间延迟注入,主要利用sleep()或benchmark()等函数让Mysql执行时间变长经常,与if(expr1,expr2,expr3)语句结合使用,通过页面的响应时间来判断条件是否正确。 2、Mysql时间延迟函数解析 1)sleep():sleep...