我目前正在运行一个脚本,并且认为运行时间不会太长,脚本正在修改临时表。
我知道临时表只存在于当前会话中,但无论如何都要查看它们在会话之外保存的数据吗?
原因是我想知道我的脚本将继续运行多长时间,如果我能看到临时数据,那么我就能弄清楚。
答案 0 :(得分:8)
恐怕没有简单的方法可以做到这一点。
临时表将存储在mysqld的指定临时目录(通常是/ tmp)中,你会看到一组表格如下:
-rw-rw---- 1 mysql mysql 8724 Nov 29 18:09 #sqldba_5fa70c_12f1.frm
-rw-rw---- 1 mysql mysql 188408 Nov 29 18:09 #sqldba_5fa70c_12f1.MYD
-rw-rw---- 1 mysql mysql 1024 Nov 29 18:09 #sqldba_5fa70c_12f1.MYI
这是一组正常的MyISAM表定义(按上面的顺序)结构,数据和索引。
这非常hacky但是我怀疑你可以将这些表复制到你的test
模式中,在表上运行修复然后查看它的内容。
如果您可以根据临时表的大小来衡量流程,那么这可能是分析正在发生的事情的一种更简单的方法。
答案 1 :(得分:1)
不可能,你可以(但是),
记录里程碑(消息,完成百分比,处理的行数)
进入临时文件,并使用tail -f log_file
监控
答案 2 :(得分:0)
在MySQL 5.7中添加了一个新的INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO:http://dev.mysql.com/doc/refman/5.7/en/innodb-information-schema-temp-table-info.html。
否则Percona XtraDB已暂时使用此功能:http://venublog.com/2010/02/03/show-temporary-tables/