2011-02-18 77 views
3

我们试图解析一个文件并将其存储在MySQL数据库中。这些命令将导入一个大型跟踪文件,大小可能为几GB,因此用户可能会感兴趣的是跟踪命令的进度。我们使用下面的命令:实现MySQL命令进度条

String commandText = "SET AUTOCOMMIT = 0; " 
        + "START TRANSACTION; " 
        + "LOAD DATA LOCAL INFILE \'" + filePath + "\' " 
        + "INTO TABLE testdatabase.metadata " 
        + @"FIELDS TERMINATED BY '\t' " 
        + @"LINES TERMINATED BY '\n' " 
        + "(Position," 
        + "Timespace," 
        + "Duration," 
        + "Disk," 
        + "Request," 
        + "Sector," 
        + "Length); " 
        + "COMMIT;"; 

有没有办法同时为了实现一个进度条正在执行的命令,以跟踪进度?

回答

1

您可以根据查询所在的阶段制作一个进度条,它可以将GUID放入查询中的某个注释中,然后使用SHOW FULL PROCESSLIST来确定查询所在的阶段。但是没有确切的方法来衡量实际进展。有了InnoDB,你可以尝试使用SHOW INNODB STATUS,但即使这样也不准确。