เมื่อคุณรัน mysqldump ของฐานข้อมูลเดียวตารางทั้งหมดจะถูกดัมพ์ตามลำดับตัวอักษร
โดยปกติการโหลด mysqldump ลงในฐานข้อมูลก็จะเรียงตามตัวอักษร
คุณสามารถทำรายการ SHOW ได้ และค้นหาการเชื่อมต่อฐานข้อมูลที่เรียกใช้ mysqldump เมื่อการถ่ายโอนข้อมูลถูกโหลดใหม่การเชื่อมต่อฐานข้อมูลจะหายไป
หากคุณต้องการทราบว่าตารางใดอยู่ใน dumpfile ให้เรียกใช้สิ่งนี้กับ foobar.sql
cat foobar.sql | grep "^CREATE TABLE" | awk '{print $3}'
อัพเดท 2012-05-02 13:53 EDT
ขออภัยที่ไม่พบว่ามีเพียงหนึ่งตาราง
หากตารางคือ MyISAM วิธีเดียวในการตรวจสอบคือจากมุมมองของระบบปฏิบัติการ เหตุผล? ตารางถูกล็อกการเขียนตลอดการโหลดซ้ำ คุณมองหาอะไร ขนาดของไฟล์.MYD
และ .MYI
แน่นอนคุณต้องเปรียบเทียบขนาดของตารางก่อนหน้านี้กับเซิร์ฟเวอร์ DB อื่นที่คุณนำเข้า
หากตารางนั้นเป็น InnoDB และคุณเปิดใช้งานinnodb_file_per_tableวิธีเดียวที่จะตรวจสอบได้คือจากมุมมองของระบบปฏิบัติการ เหตุผล? ตารางถูกล็อกการเขียนตลอดการโหลดซ้ำ คุณมองหาอะไร ขนาดของ.ibd
ไฟล์ แน่นอนคุณต้องเปรียบเทียบขนาดของตารางก่อนหน้านี้กับเซิร์ฟเวอร์ DB อื่นที่คุณนำเข้า
หากตารางนั้นเป็น InnoDB และคุณปิดใช้งานinnodb_file_per_tableไม่แม้แต่มุมมองของระบบปฏิบัติการก็สามารถช่วยได้
อัพเดท 2012-05-02 13:56 EDT
ฉันพูดถึงเรื่องนี้เมื่อปีที่แล้ว: ฉันจะได้รับ% คืบหน้าสำหรับ "type db.sql | mysql" ได้อย่างไร
อัพเดท 2012-05-02 14:09 EDT
ตั้งแต่มาตรฐาน mysqldump เขียนล็อคตารางเช่นนี้
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;
จากนั้นไม่มีทางที่จะได้รับความคืบหน้าจากกับ mysql จนกว่าจะปล่อยตารางล็อค
หากคุณสามารถรับLOCK TABLES
และUNLOCK TABLES
แสดงความคิดเห็นออกจาก dumpfile ...
- หากตารางคือ MyISAM SELECT COUNT (*) จะทำงาน
- หากตารางคือ InnoDB เลือก COUNT (*) อาจทำให้ช้า / หยุดโหลดจนกว่าการนับจะเสร็จสิ้น