如何查看mysql执行过的语句
开启记录MySQL执行过SQL语句的方法很简单:编辑f文件,在[mysqld]节下面添加:/sql_row.log行(日志的路径自己根据需要定义)。
[mysqld]
/mysql
/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
/sql_row.log
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0
[mysqld_safe]
/mysqld.log
/mysqld.pid
修改完毕后,记得重启 MySQL:
service mysql restart
# 或者
/mysqld stop
/mysqld start
现在你去 / 路径下的 sql_row.log 文件应该是能够看到 MySQL 什么时候执行了哪些程序了。
M
没有那个字段,如果是多表,加前缀
MySql查询语句是如何执行的
1.连接服务器
通过TCP连接,默认端口3306
2.查询缓存,如果匹配,则返回结果,否则继续下一步
3.解析器Parser进行解析,包括词法解析和语法解析
4.进行预处理,优化器optimizer生成执行计划
5.执行计划调用存储引擎的API函数,得到查询结果
6.查询结果返回客户端,并更新缓存