精华内容
下载资源
问答
  • 查看mysql语句运行时间

    千次阅读 2017-04-07 15:45:00
     Query Profiler是MYSQL自带的一种query诊断分析工具,通过它可以分析出一条SQL语句的性能瓶颈在什么地方。通常我们是使用的explain,以及slow query log都无法做到精确分析,  但是Query Profiler却可以定位出...

    1. Show profiles是5.0.37之后添加的,要想使用此功能,要确保版本在5.0.37之后。

         Query Profiler是MYSQL自带的一种query诊断分析工具,通过它可以分析出一条SQL语句的性能瓶颈在什么地方。通常我们是使用的explain,以及slow query log都无法做到精确分析,

         但是Query Profiler却可以定位出一条SQL语句执行的各种资源消耗情况,比如CPU,IO等,以及该SQL执行所耗费的时间等。

         查看数据库版本方法:show variables like "%version%";  或者  select version();

        

    2.确定支持show profile 后,查看profile是否开启,数据库默认是不开启的。变量profiling是用户变量,每次都得重新启用。

       查看方法: show variables like "%pro%";

       设置开启方法: set profiling = 1;

       

       再次查看show variables like "%pro%"; 已经是开启的状态了。

    3.可以开始执行一些想要分析的sql语句了,执行完后,show profiles;即可查看所有sql的总的执行时间。

      

      show profile for query 1 即可查看第1个sql语句的执行的各个操作的耗时详情。

      

     show profile cpu, block io, memory,swaps,context switches,source for query 6;可以查看出一条SQL语句执行的各种资源消耗情况,比如CPU,IO等

     show profile all for query 6 查看第6条语句的所有的执行信息。

     测试完毕后,关闭参数:

    mysql> set profiling=0
    展开全文
  • MySQL查看sql语句运行时间

    千次阅读 2015-09-11 10:36:41
    一,show profiles 之类的语句来查看 1,查一下profile是不是打开了,默认是不打开的。mysql> show profiles; Empty set (0.02 sec) mysql> show variables like "%pro%"; +---------------------------+-------...

    一,show profiles 之类的语句来查看
    1,查一下profile是不是打开了,默认是不打开的。

    mysql> show profiles; 
    Empty set (0.02 sec) 
    mysql> show variables like "%pro%"; 
    +---------------------------+-------+ 
    | Variable_name | Value | 
    +---------------------------+-------+ 
    | profiling | OFF | 
    | profiling_history_size | 15 | 
    | protocol_version | 10 | 
    | slave_compressed_protocol | OFF | 
    +---------------------------+-------+ 
    4 rows in set (0.00 sec)

    我查看一下profiles里面没有东西,所以公司的电脑里面profile是没有打开的,我查看了一下mysql变量,果然是OFF的。

    2,开启profile,然后测试
    开启profile

    mysql> set profiling=1; 
    Query OK, 0 rows affected (0.00 sec)

    测试如下:

    mysql> show tables; 
    +----------------+ 
    | Tables_in_test | 
    +----------------+ 
    | aa | 
    | bb | 
    | comment | 
    | string_test | 
    | user | 
    +----------------+ 
    5 rows in set (0.00 sec) 
    mysql> select * from aa; 
    +----+------+------------+------+ 
    | id | name | nname | sex | 
    +----+------+------------+------+ 
    | 2 | tank | bbbb,4bbbb | NULL | 
    | 3 | zhang| 3,c,u | NULL | 
    +----+------+------------+------+ 
    2 rows in set (0.00 sec) 
    mysql> update aa set name='d'; 
    Query OK, 2 rows affected (0.00 sec) 
    Rows matched: 2 Changed: 2 Warnings: 0 
    mysql> delete from bb; 
    Query OK, 2 rows affected (0.00 sec) 
    mysql> show profiles; 
    +----------+------------+------------------------+ 
    | Query_ID | Duration | Query | 
    +----------+------------+------------------------+ 
    | 1 | 0.00054775 | show tables | 
    | 2 | 0.00022400 | select * from aa | 
    | 3 | 0.00026275 | update aa set name='d' | 
    | 4 | 0.00043000 | delete from bb | 
    +----------+------------+------------------------+ 
    4 rows in set (0.00 sec) 
    mysql> show profile; 
    +----------------------+-----------+ 
    | Status | Duration | 
    +----------------------+-----------+ 
    | (initialization) | 0.0000247 | 
    | checking permissions | 0.0000077 | 
    | Opening tables | 0.0000099 | 
    | System lock | 0.000004 | 
    | Table lock | 0.000005 | 
    | init | 0.0003057 | 
    | query end | 0.0000062 | 
    | freeing items | 0.000057 | 
    | closing tables | 0.000008 | 
    | logging slow query | 0.0000015 | 
    +----------------------+-----------+ 
    10 rows in set (0.00 sec) 
    mysql> show profile for query 1; 
    +----------------------+-----------+ 
    | Status | Duration | 
    +----------------------+-----------+ 
    | (initialization) | 0.000028 | 
    | checking permissions | 0.000007 | 
    | Opening tables | 0.0000939 | 
    | System lock | 0.0000017 | 
    | Table lock | 0.0000055 | 
    | init | 0.000009 | 
    | optimizing | 0.0000027 | 
    | statistics | 0.0000085 | 
    | preparing | 0.0000065 | 
    | executing | 0.000004 | 
    | checking permissions | 0.000258 | 
    | Sending data | 0.000049 | 
    | end | 0.0000037 | 
    | query end | 0.0000027 | 
    | freeing items | 0.0000307 | 
    | closing tables | 0.0000032 | 
    | removing tmp table | 0.0000275 | 
    | closing tables | 0.0000037 | 
    | logging slow query | 0.000002 | 
    +----------------------+-----------+ 
    19 rows in set (0.00 sec) 
    mysql> show profile for query 3; 
    +----------------------+-----------+ 
    | Status | Duration | 
    +----------------------+-----------+ 
    | (initialization) | 0.0000475 | 
    | checking permissions | 0.0000077 | 
    | Opening tables | 0.000026 | 
    | System lock | 0.0000042 | 
    | Table lock | 0.0000045 | 
    | init | 0.0000205 | 
    | Updating | 0.0000787 | 
    | end | 0.0000567 | 
    | query end | 0.000004 | 
    | freeing items | 0.0000067 | 
    | closing tables | 0.000004 | 
    | logging slow query | 0.000002 | 
    +----------------------+-----------+ 
    12 rows in set (0.00 sec)

    二,timestampdiff来查看测试时间

    mysql> set @d=now(); 
    Query OK, 0 rows affected (0.00 sec) 
    mysql> select * from comment; 
    +------+-----+------+------------+---------------------+ 
    | c_id | mid | name | content | datetime | 
    +------+-----+------+------------+---------------------+ 
    | 1 | 1 | ?? | 2222222211 | 2010-05-12 00:00:00 | 
    | 2 | 1 | ?? | ????(??) | 2010-05-13 00:00:00 | 
    | 3 | 2 | tank | ?????? | 0000-00-00 00:00:00 | 
    +------+-----+------+------------+---------------------+ 
    3 rows in set (0.00 sec) 
    mysql> select timestampdiff(second,@d,now()); 
    +--------------------------------+ 
    | timestampdiff(second,@d,now()) | 
    +--------------------------------+ 
    | 0 | 
    +--------------------------------+ 
    1 row in set (0.00 sec) 

    这种方法有一点要注意,就是三条sql语句要尽量连一起执行,不然误差太大,根本不准

    set @d=now(); 
    select * from comment; 
    select timestampdiff(second,@d,now()); 

    如果是用命令行来执行的话,有一点要注意,就是在select timestampdiff(second,@d,now());后面,一定要多copy一个空行,不然最后一个sql要你自己按回车执行,这样就不准了。
    其实我觉得吧,真正要我们关心的是那些查询慢的sql,因为真正影响速度的是他们,关于慢查询的东西,有空写一下。

    http://www.jb51.net/article/45185.htm

    展开全文
  • mysql 如何查看sql语句执行时间

    千次阅读 2020-05-20 22:40:05
    1.show profiles; 刚进入mysql的时候,没有任何操作,此时内容为空。 2.show variables; 查看profiling是否开启,即Vlaue为ON ...直接使用show variables命令会将所有的变量展示出来,... 查看sql语句时间花销...

     

    注意:

    MySQL5.0.37版本以上支持PROFILING调试功能,但是因为它需要调用系统的getrusage函数(用于获取进程资源使用量),所以只是在Linux/Unix类平台上才能使用。

    PROFILING是针对处理进程(process)而不是线程(thread)的;服务器上的其他应用,比如说服务器负载不同,MySQL的响应速度、IO效率等可能不同,从而导致PROFILING结果不同(即便是对同一条SQL语句),因此,这个工具适合开发过程中的调试,如果要在生产环境中调试使用,则要注意它的局限性。

    1.show profiles;

    刚进入mysql的时候,没有任何操作,此时内容为空。

     

    2.show variables; 查看profiling是否开启,即Vlaue为ON

    直接使用show variables命令会将所有的变量展示出来,此时我们可以使用like 命令将profiling挑选出来

    一般没有开启的情况下,此时value都为OFF

     

    3.set profiling=1; 开启profiling

     

    4.使用show profiles; 查看sql语句时间花销。

    展开全文
  • MySQL可以运行在不同的模式下,而且可以在不同的场景下运行不同的模式,这主要取决于系统变量 sql_mode 的值。本文主要介绍一下这个值的查看与设置,主要在Mac系统下。 对于每个模式的意义和作用,网上很容易找到,...
  • MySQL查询SQL执行时间

    万次阅读 2018-08-18 23:33:11
    show profiles用来查询SQL执行时间,它是mysql 5.0.37之后添加的功能。 1.查看数据库版本信息,登录数据库时显示的信息中会出现数据库版本信息: 2.查看show profiles功能是否开启: 3.开启show profiles功能...

    show profiles用来查询SQL执行时间,它是mysql 5.0.37之后添加的功能。

    1.查看数据库版本信息,登录数据库时显示的信息中会出现数据库版本信息:

    2.查看show profiles功能是否开启:

    3.开启show profiles功能:

    4.查看每条执行过的SQL语句的执行时间:

    5.查看一条SQL语句的详细执行时间:

    展开全文
  • 1 show profiles; 2 查看profiling 是否是on状态; 3 如果是off,则 set profiling = 1; 4 执行自己的sql语句; 5 show profiles;就可以查到sql语句的执行时间
  • 笔记:MySQL查看sql执行时间

    万次阅读 2018-08-28 16:21:23
    MySQL 5.1以后有了show profile 默认禁用,该命令启动后:会测量服务器上执行的所有语句的耗费时间和其他一些查询执行状态变量相关的数据。...以下命令查看sql执行时间mysql>show profiles;
  • 网站运行很慢的时候,我就特别起知道为什么这么慢,所以我查啊查,数据库绝对是很重要的一部分,里面运行sql是绝对不能放过的。平时做项目的时候,我也会注意sql语句的书写,写出一些高效的sql来,所以我会经常测试...
  • mysql查看实时执行的sql语句

    千次阅读 2019-04-24 11:43:35
    MySQL默认不能实时查看执行的SQL语句,因为这会消耗一定的资源。 要开启这个功能,稍微配置一下,打开这个LOG记录就可以了。 1 查看LOG功能 首先,查看是否已经开启实时SQL语句记录。 mysql> SHOW VARIABLES...
  • MySQL分析SQL耗时瓶颈

    万次阅读 2017-09-09 10:31:06
    慢日志查询MySQL的慢日志查询是MySQL提供的一种日志记录,它用了记录在MySql中响应时间超过阈值的语句,具体运行时间超过long_query_time值的SQL,则会被记录到慢日志中。long_query_time的默认时间为10,意思是运行...
  • Mysql Workbench使用教程

    万次阅读 多人点赞 2019-03-20 23:45:34
    MySQL Workbench 为数据库管理员、程序开发者和系统规划师提供可视化的Sql开发、数据库建模、以及数据库管理功能。 <2>.MySQL Workbench 的下载和安装 (1)安装最新MySql时,有是否安装MySql Workbench的...
  • 通过 profiling 来进行查看2.1 查看 profiling 是否开启2.2 打开工具2.3 查看 SQL 的执行时间2.4 查看 SQL 执行耗时详细信息3.慢查询日志3.1 查看慢日志是否开启3.2 设置超时时间3.3 其他参数3.3.1 log_output3....
  • MySQL事件自动kill运行时间超时的SQL

    千次阅读 2019-05-20 18:17:00
    delimiter $create event my_long_running_trx_monitoron schedule every 1 minutestarts '2015-09-15 11:00:00'on completion preserve enable dobegin declare v_sql varchar(500); declare no_more_long_runnin.....
  • MySQL查看正在执行的SQL并停止

    千次阅读 2020-09-20 23:18:21
    MySQL查看当前正在执行的SQL并关闭
  • mysql查看历史执行的sql

    万次阅读 2015-08-31 18:23:11
    查看mysql的语句,比较常用的大概是show processlist 命令了,但是这个对于查询时间比较长的语句比较有意义,对于一下子就能执行的语句真心拼不过手速啊. 于是就只能从mysql的历史记录里面着手了.为了实现这个目的,...
  • MySQL 面试题

    万次阅读 多人点赞 2019-09-02 16:03:33
    MySQL 面试题 MySQL 涉及的内容非常非常非常多,所以面试题也容易写的杂乱。当年,我们记着几个一定要掌握的重心: 重点的题目添加了【重点】前缀。 索引。 锁。 事务和隔离级别。 因为 MySQL 还会有部分内容和...
  • MySQL查看实时执行的SQL语句(linux)

    千次阅读 2019-05-27 10:04:26
    MySQL默认不能实时查看执行的SQL语句,因为这会消耗一定的资源。 要开启这个功能,稍微配置一下,打开这个LOG记录就可以了。 1 查看LOG功能 首先,查看是否已经开启实时SQL语句记录。 mysql> SHOW VARIABLES...
  • 选择表 ...查看当前正在执行的sql信息 select Id,User,Host,db,Time,Info from information_schema.`PROCESSLIST` where info is not null; 杀死其中某一个占用资源的sql使用上面的id kill id; ...
  • 但是Query Profiler却可以定位出一条SQL语句执行的各种资源消耗情况,比如CPU,IO等,以及该SQL执行所耗费的时间等。 Show profiles是5.0.37之后添加的,要想使用此功能,要确保版本在5.0.37之后。 登录MySQL查看...
  • 查看mysql正在执行的SQL语句

    万次阅读 2017-03-02 16:37:38
    在项目开发里面总是要查看后台执行的sql语句,mysql数据库也不例外,它的查看方式大家一般喜欢使用 show processlist; 命令来解决,通过里面输出结果的字段解释中可以分析执行了的sql语句类型,但不太适合一般的...
  • mysql服务器后台运行sql文件。

    千次阅读 2019-06-29 16:41:00
    由于执行这个sql文件时间太长,所以需要到mysql服务器上后台执行这个脚本。 一、准备sql文件。 我的sql文件名是 full.sql 里面的内容就是sql语句。比如: INSERT INTO `xnm`.`role` (`id`, `n...
  • 获得当前日期+时间(date+time)函数:now() ...当使用sql语句插入数据的时候写入当前时间: 字段类型: INSERT INTO `tbl_rule` (`id`, `rule`, `status`, `created_at`, `type`) VALUES (...
  • 升级mysql数据库后产生的错误: mysql从5.6升级到5.7后出现:插入数据和修改数据时出错。 修改方式在liunx服务器中找到my.cnf文件最后一行加入 sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_...修改mysqlsql_m...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 216,904
精华内容 86,761
关键字:

mysql查看sql运行时间

mysql 订阅