mysql查看执行了30秒以上的语句
时间: 2023-03-21 18:01:32 浏览: 69
你可以使用MySQL的慢查询日志来查看执行时间超过一定阈值的SQL语句。慢查询日志记录了执行时间超过指定阈值的查询语句,可以通过以下步骤启用慢查询日志并查看执行时间超过30秒的语句:
1. 打开MySQL配置文件my.cnf,在[mysqld]部分添加以下配置:
```
slow_query_log = 1 #启用慢查询日志
slow_query_log_file = /var/log/mysql/slow-query.log #指定慢查询日志文件路径
long_query_time = 30 #指定查询执行时间阈值,单位为秒
```
2. 重启MySQL服务使配置生效。
3. 打开MySQL命令行客户端,执行以下命令查看慢查询日志中执行时间超过30秒的语句:
```
SELECT * FROM mysql.slow_log WHERE query_time > 30;
```
该命令将显示所有执行时间超过30秒的SQL语句。你也可以根据需要调整long_query_time参数的值来过滤更长或更短的查询语句。
相关问题
linux mysql如何查看正在执行的sql语句
在 Linux MySQL 中,您可以通过执行以下命令来查看当前正在执行的 SQL 查询语句:
```
SHOW FULL PROCESSLIST;
```
这将返回一个包含所有当前正在执行的查询的列表,以及它们的状态、执行时间等信息。在结果中,您可以查找 `State` 列,以查看每个查询的当前状态,例如正在等待锁定、正在扫描表等等。在 `Info` 列中,您可以看到每个查询的 SQL 语句。
如果您只想查看某个特定的查询语句,可以使用以下命令:
```
SELECT * FROM information_schema.processlist WHERE INFO LIKE '%your_query%';
```
将 `your_query` 替换为您想要查找的查询的关键字。这将返回一个包含所有包含该关键字的查询的列表,以及它们的状态、执行时间等信息。在 `INFO` 列中,您可以看到每个查询的完整 SQL 语句。
mysql定时执行update语句
要在MySQL中定时执行update语句,你可以按照以下步骤进行设置:
1. 首先,确保在MySQL的配置中将event_scheduler设置为ON。你可以通过修改MySQL配置文件中的参数来实现,或者在MySQL命令行中执行以下语句:SET GLOBAL event_scheduler = ON;
2. 创建一个存储过程来执行update语句。例如,创建一个名为update_work的存储过程,其中包含你要执行的update语句。例如:CREATE PROCEDURE update_work() UPDATE `work` SET salary = salary + 1;
3. 创建一个定时任务来调用上述存储过程。可以使用CREATE EVENT语句来创建定时任务,并使用类似以下语句来设置定时任务:CREATE EVENT update_event ON SCHEDULE EVERY 1 DAY STARTS '2017-06-18 01:00:00' DO CALL update_work();
4. 启动事件,以便定时任务开始执行。使用ALTER EVENT语句来启动定时任务。例如:ALTER EVENT update_event ENABLE;
通过按照上述步骤设置,你可以在MySQL中实现定时执行update语句的功能。