怎么查看mysql执行过的sql。

有些时候当程序做了更新,数据库负载突然上来,或者并发翻了几倍。这个时候如果用show full processlist; 根本看不到完全的sql。怎么才能看是哪些sql导致的呢,在网上查了资料,有一下几种方法。

1.记录慢日志:

long_query_time = 1

log_slow_queries = /tmp/mysql-slow.log

2.查看bin日志

mysqlbinlog mysql-bin.000042 |grep "Table_map"> xyq.sql

3.可以将MySQL执行的每行指令全都记录起来。

log = /tmp/mysql.log

时间: 2024-10-14 07:11:20

怎么查看mysql执行过的sql。的相关文章

如何查看MySQL执行计划

在介绍怎么查看MySQL执行计划前,我们先来看个后面会提到的名词解释: 覆盖索引: MySQL可以利用索引返回select列表中的字段,而不必根据索引再次读取数据文件 包含所有满足查询需要的数据的索引称为 覆盖索引(Covering Index) 如果要使用覆盖索引,一定要注意select列表中只取出需要的列,不可select *,因为如果将所有字段一起做索引会导致索引文件过大,查询性能下降 EXPLAIN查看执行计划的一些局限: EXPLAIN不会告诉你关于触发器.存储过程的信息或用户自定义函

如何记录MySQL执行过的SQL语句

很多时候,我们需要知道 MySQL 执行过哪些 SQL 语句,比如 MySQL 被注入后,需要知道造成什么伤害等等.只要有 SQL 语句的记录,就能知道情况并作出对策.服务器是可以开启 MySQL 的 SQL 语句记录功能,从而就能间接地检测到客户端程序的行为.涞水县梁以纸业 开启方法很简单:编辑/etc/my.cnf文件,在[mysqld]节下面添加:log=/var/lib/mysql/sql_row.log行(日志的路径自己根据需要定义). [mysqld] datadir=/var/li

mysql general log 查看mysql 执行历史

我们有时候需要查看mysql的执行历史,比如我们做sql优化的时候,起码要知道执行的sql是什么,框架一般会帮我们拼装sql,所以在程序中不一定能够打印出sql,这个时候就需要mysql的general log了. 查看设置mysql genneral log show VARIABLES like '%general_log%'; set GLOBAL general_log = off;// on-打开; off-关闭 general_log ON general_log_file /var

如何查看MySQL执行的每条SQL

1.登录数据库 [[email protected] ~]# mysql -uroot -p -h172.16.*.*(你数据库的IP) 2.查看是否开启general_log mysql> show variables like "general_log%"; 可以看到general_log未开启, 3.开启general_log: mysql> set global general_log = ON; 开启之后无需重启MySQL,可直接用命令监控日志: 4.监控日志 [

Mysql执行大文件sql语句 -- 未测试

如果.sql文件过大,mysql会直接断开连接 解决方法: 在mysql的配置文件my.cnf 中加入 一行max_allowed_packet = 100M(该大小>=mysql.sql文件大小) [mysqld] max_allowed_packet=20000M wait_timeout=20000000 interactive_timeout = 20000000 大小可根据实际情况设置: 登录Mysql后查看变量: show VARIABLES like '%max_allowed_p

如何查看MySQL执行计划呢?

覆盖索引: MySQL可以利用索引返回select列表中的字段,而不必根据索引再次读取数据文件 包含所有满足查询需要的数据的索引称为 覆盖索引(Covering Index) 如果要使用覆盖索引,一定要注意select列表中只取出需要的列,不可select *,因为如果将所有字段一起做索引会导致索引文件过大,查询性能下降 EXPLAIN查看执行计划的一些局限: EXPLAIN不会告诉你关于触发器.存储过程的信息或用户自定义函数对查询的影响情况EXPLAIN不考虑各种CacheEXPLAIN不能显

【转】mysql执行计划介绍

原文地址:http://www.jb51.net/article/43306.htm 1.查看mysql执行计划 explain SELECT * from shippingorder where STATUS<>4; 2.执行计划包含的信息 (1).id 含义,指示select字句或操作表的顺序. eg1:id相同,执行顺序从上到下,下面的执行计划表示,先操作t1表,然后操作t2表,最后操作t3表. eg2:若存在子查询,则子查询(内层查询)id大于父查询(外层查询),先执行子查询.id越大

查看MySQL记录执行过的SQL

第一种:查Slow query的SQL语法: log_slow_queries = /var/log/mysql/mysql-slow.log long_query_time = 2 (超过2秒的SQL语法记录起来,设短一点来记录除错也是一种方法.) 第二种:设MySQL Replication用binlog: log_bin = /var/log/mysql/mysql-bin.log (此档要用mysqlbinlog解来看, mysqlbinlog mysql-bin.000042| gre

查看Mysql实时执行的Sql语句

最近给客户开发了基于Asp.Net mvc5 +Mysql+EF的项目,但是在EF里无法看到Mysql执行的语句 之前也找到一些监控Mysql的软件但一直没有用起来,现在又遇到了问题即在EF里Mysal的查询没有结果而在Mysql里没有问题 因为不知道EF生成的Mysql语句所以不知道是不是Sql的问题于是决定必须解决此问题 通过半天时间的努力解决了此问题,其实很简单即开启Mysql的Log功能,那么Mysql的执行语句都会写到Log文件里 然后通过BareTail这个专门查看Log文件的工具即