在对SQL语句进行优化和分析的过程中,有时会想测量SQL语句的查询效率。本文主要是针对MySql数据库的探讨。
为了使测量结果尽可能精确,下面的条件是值得先行考虑的,虽然并不是必须:
查询缓存可能会导致被测的SQL语句没有实际被执行。用下面的语句禁用查询缓存:
SET SESSION query_cache_type = OFF ### 或者在查询语句中禁用查询缓存 SELECT SQL_NO_CACHE * FROM tbl_name;
为了避各单次查询中的偶然因素,BENCHMARK函数允许你执行一条SQL语句指定次数以统计执行时间。用法如下:
SELECT BENCHMARK(500, (SELECT html FROM html_db LIMIT 1);
BENCHMARK函数要求补测的SQL语句只返回一行记录,并且这条记录只能有一列。
执行查询之前和之后,可以用"SHOW STATUS"语句来显示服务器状态,并比较它们的不同。
mysqlslap是MySql自带的一个用于数据库服务器压力测试的工具。
TODO