在将较长的MySQL查询运行到输出文件时监视输出文件

问题描述 投票:0回答:1

所以我的MySQL查询运行时间很长:Optimise comparing data in two big MySQL tables

显然有结果:中断查询后,我发现输出文件确实已修改,并且具有数千条记录。但是当我中断长时间运行的查询时,结果被刷新到文件中

我已使用命令:

mysql> SELECT ar.email FROM activation_request ar WHERE ar.date_confirmed is not null AND NOT EXISTS (SELECT 1 FROM user u WHERE u.username = ar.email) INTO OUTFILE '/tmp/results_after_adding_indexes.csv';

同时如何监视/准备呢?该文件是在文件系统中创建的,但为空(直到查询结束或中断;无论先发生什么)。

mysql monitoring query-performance
1个回答
0
投票

由于INTO OUTFILE不支持分页输出的options,我相信您需要编写自己的导出脚本。

((请注意,您也可以按照LOAD DATA文档的说明,也可以看到options INTO OUTFILE的完整性,但是唯一希望的是LINES选项,该选项用于自定义线宽)。

假设您在记录行上不需要数据库引擎选项,该脚本很简单:

  1. “全部”查询,然后
  2. 对结果进行循环以进行简单的转换;
  3. 将传出的行存储到文件的数组中;
  4. n行将队列写入文件中。
  5. 并且确保不要仅仅因为记录集的最后几位在最后一块中不包含n行而丢弃记录集的最后几位。
© www.soinside.com 2019 - 2024. All rights reserved.