উত্তর:
যেমন স্ক্যাফম্যান বলেছেন, - যে কোনও বিকল্পটি ব্যবহার করুন :
mysqldump --opt --where="1 limit 1000000" database
অবশ্যই, এটি আপনাকে প্রতিটি টেবিল থেকে প্রথম মিলিয়ন সারি দেবে।
SELECT * from table WHERE
, সুতরাং এক্ষেত্রে আপনি পাবেন SELECT * from table WHERE 1 limit 1000000
। ১ টি ছাড়া আপনার একটি অবৈধ ক্যোয়ারী থাকবে। যেখানে ক্লজটির জন্য 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 যা আপনি এই পরিস্থিতিতে খুব কমই চান তাই ডিইএসসিটিকে বাক্সের বাইরে নিয়ে যেতে আপনার একটি সঠিক ডাটাবেস নকশা থাকা দরকার। যদি আপনার সমস্ত টেবিলের একই নামের (প্রাকৃতিক বা সারোগেট) সাথে একটি প্রাথমিক কী কলাম থাকে তবে আপনি সহজেই এনটি সর্বশেষ রেকর্ডগুলি ডাম্প করতে পারেন:
mysqldump --opt --where="1 ORDER BY id DESC limit 1000000" --all-databases > dump.sql
আপনার সর্বদা আপনার পিকে আইডি নামকরণ এবং সংযুক্ত পিকে, এমনকি সংযুক্তি টেবিলগুলিতেও (এর পরিবর্তে সরোগেট কীগুলি ব্যবহার করা উচিত) এড়ানো উচিত এটির একটি সঠিক কারণ ।