সংক্ষিপ্ত উত্তর:
select ENGINE, TABLE_NAME,Round( DATA_LENGTH/1024/1024) as data_length , round(INDEX_LENGTH/1024/1024) as index_length, round(DATA_FREE/ 1024/1024) as data_free from information_schema.tables where DATA_FREE > 0;
"আপনার অবশ্যই জানা উচিত" উত্তর
প্রথমে আপনার অবশ্যই বুঝতে হবে যে সারি আপডেট হওয়ার পরে মাইএসকিএল টেবিলগুলি খণ্ডিত হয়ে যায়, তাই এটি একটি স্বাভাবিক পরিস্থিতি। যখন একটি সারণী তৈরি করা হয়, তখন ডেটা সহ ডাম্প ব্যবহার করে আমদানি করে বলুন, সমস্ত সারি অনেক স্থির আকারের পৃষ্ঠায় কোনও বিভাজন ছাড়াই সঞ্চয় করা হয়। যখন আপনি কোনও পরিবর্তনশীল দৈর্ঘ্যের সারিটি আপডেট করেন, এই সারিটি থাকা পৃষ্ঠাটি পরিবর্তনগুলি সংরক্ষণ করার জন্য দুটি বা ততোধিক পৃষ্ঠায় বিভক্ত করা হয় এবং এই নতুন দুটি (বা আরও) পৃষ্ঠাগুলিতে অব্যবহৃত স্থান পূরণ করার ফাঁকা স্থান থাকে।
এটি পারফরম্যান্সকে প্রভাবিত করে না, যতক্ষণ না খণ্ডগুলি খুব বেশি বেড়ে যায়। খুব বেশি ভাঙ্গন কী, ভাল আপনি যে ক্যোয়ারীটি সন্ধান করছেন তা দেখুন:
select ENGINE, TABLE_NAME,Round( DATA_LENGTH/1024/1024) as data_length , round(INDEX_LENGTH/1024/1024) as index_length, round(DATA_FREE/ 1024/1024) as data_free from information_schema.tables where DATA_FREE > 0;
আপনার ডেটা এবং সূচকগুলি যে স্থানটি ব্যবহার করছে তা DATA_LENGTH এবং INDEX_LENGTH, এবং সমস্ত সারণী পৃষ্ঠাগুলিতে (টুকরোকরণ) অব্যবহৃত মোট বাইটের পরিমাণ হ'ল ডেটা_ফ্রেই।
এখানে প্রকৃত উত্পাদন সারণীর একটি উদাহরণ's
| ENGINE | TABLE_NAME | data_length | index_length | data_free |
| InnoDB | comments | 896 | 316 | 5 |
এক্ষেত্রে আমাদের একটি টেবিল রয়েছে (896 + 316) = 1212 এমবি ব্যবহার করে এবং 5 এমবি বিশিষ্ট ডেটা রয়েছে। এর অর্থ এর "বিভাজনের অনুপাত":
5/1212 = 0.0041
... যা সত্যই কম "ভগ্নাংশ অনুপাত"।
আমি 0.2 এর কাছাকাছি অনুপাত সহ টেবিলের সাথে কাজ করছি (যার অর্থ ফাঁকা জায়গাগুলির 20%) এবং কোয়েরিগুলি কখনই কমিয়ে আনতে লক্ষ্য করি না, এমনকি যদি আমি টেবিলটি অপ্টিমাইজ করি তবে পারফরম্যান্সটি একই। তবে একটি 800 এমবি টেবিলটিতে একটি অনুকূলিত টেবিলটি প্রয়োগ করতে অনেক সময় লাগে এবং টেবিলটি কয়েক মিনিটের জন্য অবরুদ্ধ করে দেয়, যা উত্পাদনে অচল।
সুতরাং, আপনি যদি পারফরম্যান্সে কী জিতেন এবং কোনও টেবিলের অনুকূলকরণে সময় নষ্ট করে তা বিবেচনা করে, আমি পছন্দ না করাই পছন্দ করি।
আপনি যদি মনে করেন এটি স্টোরেজের জন্য ভাল, আপনার অনুপাত দেখুন এবং অনুকূলিতকরণের সময় আপনি কতটা জায়গা বাঁচাতে পারবেন তা দেখুন। এটি সাধারণত খুব বেশি হয় না, তাই আমি পছন্দ করি না।
এবং আপনি যদি অনুকূলিত হন তবে পরবর্তী আপডেটটি দুটি বা তার বেশি অংশে একটি পৃষ্ঠা বিভক্ত করে ফাঁকা স্থান তৈরি করবে। তবে খণ্ডিত টেবিলের চেয়ে খণ্ডিত টেবিলটি আপডেট করা দ্রুত, কারণ টেবিলটি যদি একটি সারিতে একটি খণ্ড খণ্ডিত হয় তবে অগত্যা কোনও পৃষ্ঠা বিভক্ত হবে।
এটি তোমাকে সাহায্য করবে বলে আশা করি।