Просмотр временной таблицы MySQL - не в сеансе

В настоящее время у меня запущен скрипт, и я не думал, что это займет так много времени, скрипт изменяет временную таблицу.

Я знаю, что временные таблицы существуют только для текущего сеанса, но можно ли в любом случае увидеть данные, которые они содержат, вне сеанса?

Причина в том, что я хочу знать, как долго мой скрипт будет работать, если бы я мог видеть временные данные, я бы смог это понять.


person Drahcir    schedule 29.11.2011    source источник
comment
Кто-то написал патч для отображения временных таблиц: venublog.com/2010/02 /03/show-temporary-tables Он был включен в Percona XtraDB, популярный форк MySQL.   -  person ggiroux    schedule 30.11.2011
comment
@ggiroux, а как насчет WebScaleSQL?   -  person Pacerier    schedule 04.05.2015
comment
В MySQL 5.7 добавлена ​​новая INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO: dev.mysql.com/doc/refman/5.7/en/   -  person ggiroux    schedule 04.05.2015
comment
@Pacerier, WebScaleSQL, похоже, не имеет патча от Percona, но новая функция INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO в версии Oracle в конечном итоге просочится в WSSQL.   -  person ggiroux    schedule 04.05.2015


Ответы (3)


Боюсь, простого способа сделать это нет.

Временные таблицы будут храниться в указанном вами временном каталоге 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, определяющих (в указанном выше порядке) структуру, данные и индекс.

Это ужасно взломано, но я подозреваю, что вы можете скопировать эти таблицы, скажем, в свою схему test, запустить восстановление таблицы, а затем просмотреть ее содержимое.

Если вы можете оценить процесс по размеру временной таблицы, то это вполне может быть более простым способом анализа происходящего.

person James C    schedule 29.11.2011
comment
Спасибо. Размер файла очень помог, я сравнил его с размером аналогичной таблицы. - person Drahcir; 29.11.2011

Это невозможно, но вы можете (однако)
записывать веху (сообщение, % выполнения, число обработанных строк)
во временный файл и использовать tail -f log_file для мониторинга

person ajreal    schedule 29.11.2011

В 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/

person ggiroux    schedule 04.05.2015
comment
Можно ли это использовать для просмотра данных временной таблицы вне сеанса? - person Jon G - Megaphone Tech; 15.11.2019