2011-11-29 49 views
7

Tôi hiện đang chạy tập lệnh và không nghĩ sẽ mất nhiều thời gian để chạy, tập lệnh đang sửa đổi bảng tạm thời.Xem Bảng tạm thời MySQL - Không có trong phiên

Tôi biết rằng các bảng tạm thời chỉ tồn tại cho phiên hiện tại, nhưng có cách nào để xem dữ liệu mà chúng nắm giữ từ bên ngoài phiên không?

Lý do là tôi muốn biết tập lệnh của mình sẽ tiếp tục chạy bao lâu, nếu tôi có thể xem dữ liệu tạm thời thì tôi có thể tìm ra.

+2

Có người đã viết một bản vá để "hiển thị bảng tạm thời": http://venublog.com/2010/02/03/show-temporary- bảng/ Nó đã được bao gồm trong Percona XtraDB, một ngã ba MySQL phổ biến. – ggiroux

+0

@ggiroux, Còn WebScaleSQL thì sao? – Pacerier

+0

Trong MySQL 5.7, INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO mới đã được thêm vào: http://dev.mysql.com/doc/refman/5.7/en/innodb-information-schema-temp-table-info.html – ggiroux

Trả lời

8

Không có cách nào dễ dàng để làm điều này tôi sợ.

bảng tạm thời sẽ được lưu trữ trong thư mục tạm được chỉ định của mysqld của bạn (thường là/tmp) và bạn sẽ thấy một tập hợp các bảng gì đó như:

-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 

Đó là một bộ bình thường của bảng MyISAM xác định (theo thứ tự ở trên) cấu trúc, dữ liệu và chỉ mục.

Điều này thật khủng khiếp nhưng tôi nghi ngờ bạn có thể sao chép các bảng này thành lược đồ test của bạn, chạy sửa chữa trên bảng và sau đó xem nội dung đó.

Nếu bạn có thể đánh giá quy trình theo kích thước của bảng tạm thời thì đó cũng có thể là cách đơn giản hơn để phân tích những gì đang xảy ra.

+0

Cảm ơn. Các tập tin đã rất hữu ích, tôi so sánh nó với kích thước của một bảng tương tự. – Drahcir

1

là không thể, bạn có thể (tuy nhiên),
log mốc (tin nhắn,% hoàn thành, hàng số xử lý)
vào một tập tin tạm thời, và sử dụng tail -f log_file theo dõi

Các vấn đề liên quan