RandomSeed द्वारा स्वीकृत उत्तर में लंबा समय लग सकता है! तालिका को आयात करना (बस इसे बाद में छोड़ने के लिए) आकार के आधार पर बहुत बेकार हो सकता है।
. का उपयोग करके बनाई गई फ़ाइल के लिए
mysqldump -u user -ppasswd --opt --routines DBname > DBdump.sql
मुझे वर्तमान में 7GB के बारे में एक फ़ाइल मिलती है, जिसमें से 6GB एक लॉग टेबल के लिए डेटा है जिसे मुझे वहां रहने की 'आवश्यकता' नहीं है; इस फ़ाइल को पुनः लोड करने में कुछ घंटे लगते हैं। यदि मुझे पुनः लोड करने की आवश्यकता है (विकास उद्देश्यों के लिए, या यदि कभी लाइव पुनर्प्राप्ति के लिए आवश्यक हो) तो मैं फ़ाइल को इस प्रकार स्किम करता हूं:
sed '/INSERT INTO `TABLE_TO_SKIP`/d' DBdump.sql > reduced.sql
और इसके साथ पुनः लोड करें:
mysql -u user -ppasswd DBname < reduced.sql
यह मुझे एक पूर्ण डेटाबेस देता है, जिसमें "अवांछित" तालिका बनाई गई है लेकिन खाली है। यदि आप वास्तव में तालिकाओं को बिल्कुल भी नहीं चाहते हैं, तो लोड समाप्त होने के बाद बस खाली तालिकाओं को छोड़ दें।
एकाधिक तालिकाओं के लिए आप ऐसा कुछ कर सकते हैं:
sed '/INSERT INTO `TABLE1_TO_SKIP`/d' DBdump.sql | \
sed '/INSERT INTO `TABLE2_TO_SKIP`/d' | \
sed '/INSERT INTO `TABLE3_TO_SKIP`/d' > reduced.sql
एक 'गोचा' है - अपने डंप में प्रक्रियाओं के लिए देखें जिसमें "INSERT INTO TABLE_TO_SKIP" हो सकता है।