mysql查询执行语句

2023年 2月 18日 30.9k 0

请教MySQL执行查询语句时数据库崩溃重启问题

MySQL 随着版本不停迭代,崩溃的现象越来越少,也越来越隐蔽。
一旦遇到生产环境上的 MySQL 崩溃,就需要保留现认局比环见场信息,供分析用。虽然 MySQL 的 error log 中会打印部分信息,但对于比较隐蔽的崩溃,往往显得力不从心。
通过开启操作系统级别、放开用户限制、启用 MySQL 参数三个步骤,我们启用了 MySQL 的 coredump 功能,使得 MySQL 崩溃时留下了足够的线索。
对于复杂崩溃的分析,还是需要将 coredump 来自交给专业的研发工程师手里,或者提交给 MySQL 开发团队。
不过不管是什么场景,能提供一份 coredump,所有技术人员都会感谢你的。


MySql查询语句是如何执行的

1.连接服务器

通过TCP连接,默认端口3306

2.查询缓存,如果匹配,则返回结果,否则继续下一步

3.解析器Parser进行解析,包括词法解析和语法解析

4.进行预处理,优化器optimizer生成执行计划

5.执行计划调用存储引擎的API函数,得到查询结果

6.查询结果返回客户端,并更新缓存


如何查看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 什么时候执行了哪些程序了。


相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论