Khi bạn thực hiện một mysqldump của một cơ sở dữ liệu, tất cả các bảng được kết xuất theo thứ tự bảng chữ cái.
Đương nhiên, việc tải lại mysqldump vào cơ sở dữ liệu cũng sẽ theo thứ tự bảng chữ cái.
Bạn chỉ có thể làm một QUY TRÌNH HIỂN THỊ; và tìm ra kết nối DB chạy mysqldump. Khi kết xuất được tải lại, Kết nối DB sẽ biến mất.
Nếu bạn muốn biết những bảng nào trong dumpfile, hãy chạy nó với foobar.sql
cat foobar.sql | grep "^CREATE TABLE" | awk '{print $3}'
CẬP NHẬT 2012-05 / 02 13:53 EDT
Xin lỗi vì đã không nhận thấy rằng chỉ có một bảng.
Nếu bảng là MyISAM, cách duy nhất để giám sát là từ quan điểm của hệ điều hành. Nguyên nhân? Bảng được ghi khóa trong suốt quá trình tải lại. Bạn đang tìm kiếm gì? Kích thước của .MYD
và .MYI
tập tin. Tất nhiên, bạn cần so sánh với kích thước bảng trước đó trên máy chủ DB khác mà bạn đã nhập.
Nếu bảng là InnoDB và bạn đã bật innodb_file_per_table , cách duy nhất để giám sát là theo quan điểm của HĐH. Nguyên nhân? Bảng được ghi khóa trong suốt quá trình tải lại. Bạn đang tìm kiếm gì? Kích thước của .ibd
tập tin. Tất nhiên, bạn cần so sánh với kích thước bảng trước đó trên máy chủ DB khác mà bạn đã nhập.
Nếu bảng là InnoDB và bạn đã vô hiệu hóa innodb_file_per_table , thì ngay cả quan điểm hệ điều hành cũng không thể giúp được.
CẬP NHẬT 2012-05 / 02 13:56 EDT
Tôi đã giải quyết một cái gì đó như thế này năm ngoái: Làm thế nào để tôi có được% tiến trình cho "gõ db.sql | mysql"
CẬP NHẬT 2012-05 / 02 14:09 EDT
Vì một mysqldump tiêu chuẩn ghi khóa bảng như thế này:
LOCK TABLES `a` WRITE;
/*!40000 ALTER TABLE `a` DISABLE KEYS */;
INSERT INTO `a` VALUES (123),(451),(199),(0),(23);
/*!40000 ALTER TABLE `a` ENABLE KEYS */;
UNLOCK TABLES;
sau đó, không có cách nào để có được một tiến trình với mysql cho đến khi khóa bảng được phát hành.
Nếu bạn có thể nhận được LOCK TABLES
và UNLOCK TABLES
nhận xét ra khỏi bãi rác ...
- nếu bảng là MyISAM, CHỌN COUNT (*) sẽ hoạt động
- nếu bảng là InnoDB, CHỌN COUNT (*) có thể sẽ làm chậm / tạm dừng tải cho đến khi đếm xong