जवाबों:
जैसा कि स्कैफ़मैन कहते हैं, - the- विकल्प का उपयोग करें :
mysqldump --opt --where="1 limit 1000000" database
बेशक, यह आपको हर तालिका से पहली मिलियन पंक्तियाँ देगा।
SELECT * from table WHERE
, इसलिए इस मामले में आपको मिलता है SELECT * from table WHERE 1 limit 1000000
। 1 के बिना, आपके पास एक अमान्य क्वेरी होगी। जहां क्लॉज के लिए 1 निर्दिष्ट करना (क्योंकि 1 हमेशा सत्य होता है) बस सभी रिकॉर्ड का चयन करता है।
mysqldump --opt --where="1 limit 1000000 offset 1000000" --no-create-info database
1 मिलियन रिकॉर्ड का दूसरा पृष्ठ प्राप्त करने के लिए। केवल डेटा को डंप करने और क्रिएट टेबल सामान को छोड़ने के अलावा अन्य पृष्ठों पर -no-create-info ध्वज का उपयोग करना सुनिश्चित करें ।
यदि आप n
किसी विशिष्ट तालिका से रिकॉर्ड प्राप्त करना चाहते हैं तो आप कुछ इस तरह से कर सकते हैं:
mysqldump --opt --where="1 limit 1000000" database table > dump.sql
यह फ़ाइल में 1000000
नामित तालिका से पहली पंक्तियों को डंप करेगा ।table
dump.sql
जैसा कि डिफ़ॉल्ट क्रम ASC है जो शायद ही कभी आप इस स्थिति में चाहते हैं, आपको DESC को बॉक्स से बाहर काम करने के लिए एक उचित डेटाबेस डिज़ाइन की आवश्यकता होती है। यदि आपके सभी तालिकाओं में एक ही नाम (प्राकृतिक या सरोगेट) के साथ एक प्राथमिक कुंजी कॉलम है, तो आप आसानी से उपयोग कर रहे एन नवीनतम रिकॉर्ड को डंप कर सकते हैं:
mysqldump --opt --where="1 ORDER BY id DESC limit 1000000" --all-databases > dump.sql
यह एक सही कारण है कि आपको हमेशा अपनी पीके की आईडी का नाम देना चाहिए और समग्र पीके से भी बचना चाहिए, यहां तक कि एसोसिएशन तालिकाओं में भी (सरोगेट कुंजी का उपयोग करें)।