এটি ibdata1সঙ্কুচিত হয় না মাইএসকিউএলের একটি বিশেষ বিরক্তিকর বৈশিষ্ট্য। ibdata1ফাইল আসলে, যদি না আপনি সব ডাটাবেস মুছে দিন, ফাইল মুছে ফেলুন এবং একটি ডাম্প পুনরায় লোড সঙ্কুচিত করা যাবে না।
তবে আপনি মাইএসকিউএল কনফিগার করতে পারেন যাতে প্রতিটি সারণী, এর সূচীগুলি সহ একটি পৃথক ফাইল হিসাবে সংরক্ষণ করা হয়। এভাবে ibdata1বড় হিসাবে হত্তয়া করা হবে না। মতে বিল Karwin এর মন্তব্য এই মাইএসকিউএল সংস্করণ 5.6.6 হিসাবে ডিফল্টরূপে সক্রিয় করা হয়।
কিছুক্ষণ আগে আমি এটি করেছি। তবে, প্রতিটি টেবিলের জন্য পৃথক ফাইলগুলি ব্যবহার করার জন্য আপনার সার্ভারটি সেটআপ করতে my.cnfআপনাকে এটি সক্ষম করার জন্য পরিবর্তন করতে হবে:
[mysqld]
innodb_file_per_table=1
http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html
আপনার কাছ থেকে স্থানটি দাবি করতে চাইলে ibdata1আসলে ফাইলটি মুছতে হবে:
- কি একটি
mysqldumpসব ডেটাবেস পদ্ধতি ট্রিগার ইত্যাদি ব্যতীত mysqlএবং performance_schemaডাটাবেস
- উপরের ২ টি ডাটাবেস বাদে সমস্ত ডাটাবেস ফেলে দিন
- বন্ধ করুন mysql
- মুছুন
ibdata1এবং ib_logফাইল
- মাইএসকিএল শুরু করুন
- ডাম্প থেকে পুনরুদ্ধার করুন
আপনি যখন মাইএসকিউএল শুরু করবেন 5 ধাপে ibdata1এবং ib_logফাইলগুলি পুনরায় তৈরি করা হবে।
এখন আপনি যেতে ফিট। আপনি যখন বিশ্লেষণের জন্য একটি নতুন ডাটাবেস তৈরি করেন, সারণীগুলি পৃথক ibd*ফাইলে অবস্থিত হবে না ibdata1। আপনি অল্প সময়ের মধ্যেই ডাটাবেসটি ফেলে রাখার সাথে সাথে ibd*ফাইলগুলি মুছে ফেলা হবে।
http://dev.mysql.com/doc/refman/5.1/en/drop-database.html
আপনি সম্ভবত এটি দেখেছেন:
http://bugs.mysql.com/bug.php?id=1341
কমান্ডটি ব্যবহার করে ALTER TABLE <tablename> ENGINE=innodbবা OPTIMIZE TABLE <tablename>কেউ আইবডেটা 1 থেকে আলাদা ফাইলগুলিতে ডেটা এবং সূচী পৃষ্ঠাগুলি বের করতে পারে। তবে উপরের পদক্ষেপগুলি না করা থাকলে ইবদাটা 1 সঙ্কুচিত হবে না।
সম্পর্কিত information_schema, যে ড্রপ করা প্রয়োজন হয় না বা সম্ভব। এটি আসলে সারণী নয়, কেবল পঠনযোগ্য দেখার একগুচ্ছ। এবং তাদের সাথে কোনও ফাইল যুক্ত নেই, এমনকি কোনও ডাটাবেস ডিরেক্টরিও নেই। informations_schemaমেমরি ডিবি-ইঞ্জিন ব্যবহার করা হয় এবং বাদ পড়েছে এবং স্টপ উপর দ্বিজ হয় / mysqld এর পুনরায় আরম্ভ করুন। Https://dev.mysql.com/doc/refman/5.7/en/information-schema.html দেখুন ।