我想将一系列查询 EXPLAIN 计划的结果存档到一个表中以供以后分析。
我创建了一个包含 EXPLAIN 结果中所有字段的表,但我不知道如何通过执行 EXPLAIN 命令来填充它。
我想出了如何在 MySQL Workbench 中导出包含 INSERT 命令的 .sql 文件,但我必须手动编辑它才能使其工作。EXPLAIN 信息是否存储在某处以便我可以编写查询来自动执行?我在 information_schema 或 performance_schema 中都找不到它。
如果您正在运行,Linux OS则可以将其保存到文件中。
例子:
User='root'
Pass='text'
Host='10.0.0.223' (If it's remote)
Run Code Online (Sandbox Code Playgroud)
在命令行上运行:
mysql -u $User -p$Pass --host=$Host -e "EXPLAIN SELECT * FROM mysql.user LIMIT 0,2" | tee -a test.txt
Run Code Online (Sandbox Code Playgroud)
mysql -e将在命令行上执行查询。
tee -a将从标准输入读取并写入文件test.txt
你会得到:

您可以使用perl将死亡行替换为您想要的任何分隔符(我在本示例中使用逗号)。
perl -wnlpi -e 's/\s+/,/g;' text.txt
Run Code Online (Sandbox Code Playgroud)
例子:

希望这有帮助。
| 归档时间: |
|
| 查看次数: |
1443 次 |
| 最近记录: |