এটি মাইএসকিউএল ডিবিএ এবং ডিবিএ স্ট্যাকএক্সচেঞ্জের ক্ষেত্রে আমি বছরের পর বছর ধরে যে বিতর্কিত বিষয়গুলির মধ্যে পড়েছি তার মধ্যে একটি।
এটিকে হালকাভাবে বলতে গেলে, ইবদাটা সঙ্কুচিত করার উপায় ছাড়া আর কোনও উপায় নেই । সঙ্গে innodb_file_per_table অক্ষম, প্রত্যেক সময় আপনি চালাতে OPTIMIZE TABLE
একটি InnoDB টেবিলের উপর, ibdata1 দ্রুত বৃদ্ধি। যে ডেটা ব্যবহার করে ফেলে দেওয়া হয় DROP TABLE
এবং DROP DATABASE
এগুলি আবার ঘোরানো যায় না কারণ তারা ডিডিএল, ডিএমএল নয়। আমি বিশ্বাস করি ওরাকল এবং এমএসএসকিউএল ডিডিএল রোলব্যাক করতে পারে। মাইএসকিউএল এটি করতে পারে না।
বিভিন্ন ধরণের তথ্য রয়েছে যা ইবদাটা 1 তে থাকে
- সারণী ডেটা
- সারণী সূচি
- টেবিল মেটাডেটা
- এমভিসিসি নিয়ন্ত্রণ ডেটা
- ডাবল রাইট বাফার (ওএস ক্যাশে নির্ভরতা রোধ করতে পটভূমি রচনা)
- বাফার Inোকান (অ-অনন্য মাধ্যমিক সূচকগুলিতে পরিবর্তনগুলি পরিচালনা করা)
ব্যবহারের innodb_file_per_table=1
সাহায্যে আপনি টেবিল ডেটা এবং টেবিল সূচীগুলি আইবডাটা 1 এর বাইরে তৈরি হতে নতুন টেবিল তৈরি করতে পারবেন। আপনি এখনও ইবদাটা 1 এর সাহায্যে কোনও সারণী নিষ্কাশন করতে পারেন ALTER TABLE ... ENGINE=InnoDB;
বা OPTIMIZE TABLE
এটি ব্যবহার করতে পারেন তবে এটি সেই বড় ফাঁক দিয়ে অব্যবহৃত স্থানটি ইবদাটা 1 এ ছেড়ে যাবে।
তবুও, আপনাকে অবশ্যই InnoDB অবকাঠামো পরিষ্কার করতে হবে। কীভাবে এবং কীভাবে করা যায় সে সম্পর্কে আমি ইতিমধ্যে স্ট্যাক এক্সচেঞ্জ পোস্টগুলি লিখেছি:
ভাল খবর
আপনাকে কেবল ডেটা ডাম্প করতে হবে, আরও একবার পুনরায় লোড করুন এবং এই সমস্যাটি আবার কখনও ঘুরে দেখবেন না । এর OPTIMIZE TABLE
পরে চালানো .ibd
কোনও InnoDB টেবিলের জন্য টেবিল স্পেস ফাইলটি সঙ্কুচিত করবে ।