2011-11-29 3 views
7

현재 실행중인 스크립트가 있으며 실행하는 데 시간이 오래 걸릴 것이라고 생각하지 않았습니다.이 스크립트는 임시 테이블을 수정하고 있습니다.MySQL 임시 테이블보기 -

임시 테이블은 현재 세션에만 존재하지만 어쨌든 세션 외부에서 보유한 데이터를 볼 수 있습니까?

이유는 내가 임시 데이터를 볼 수 있다면 내 스크립트가 계속 실행되는 것을 알고 싶습니다. 그러면 알아낼 수 있습니다.

+2

누군가가 패치를 작성했습니다에 "임시 테이블을 보여"http://venublog.com/2010/02/03/show-temporary- 테이블/ 인기있는 MySQL 포크 인 Percona XtraDB에 포함되었습니다. – ggiroux

+0

@ggiroux, WebScaleSQL은 어떻습니까? – Pacerier

+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 – ggiroux

답변

8

내가 할 수있는 쉬운 방법이 없습니다.

임시 테이블은 mysqld에의 지정된 임시 디렉토리 (일반적으로/tmp 디렉토리)에 저장됩니다 그리고 당신은 같은 테이블 세트가 표시됩니다 위해 정의 MyISAM 테이블의 정상적인 세트의

-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 

(위의) 구조, 데이터 및 색인.

이것은 끔찍한 해커이지만이 테이블을 복사하여 test 스키마로 복사하고 테이블을 복구 한 다음 내용을 볼 수있을 것으로 생각됩니다.

임시 테이블의 크기로 프로세스를 측정 할 수 있다면 상황이 어떻게 진행되고 있는지 간단하게 분석 할 수 있습니다.

+0

감사합니다. 파일 크기가 매우 유용했기 때문에 비슷한 크기의 테이블과 비교했습니다. – Drahcir

1

수없는, 당신은 (그러나),
로그 이정표 (메시지, 완료 %, 수 처리 된 행) 임시 파일에
, 그리고 MySQL의 5.7에서