কম্পিউটার

মাইএসকিউএল কম্প্রেশন সক্ষম করুন


একটি সংকুচিত টেবিল তৈরি হওয়ার আগে, নিশ্চিত করুন যে innodb_file_per_table কনফিগারেশন বিকল্পটি সক্রিয় আছে, এবং innodb_file_formatটি Barracuda-এ সেট করা আছে। এই পরামিতিগুলি MySQL কনফিগারেশন ফাইল my.cnf বা my.ini, অথবা MySQL সার্ভার বন্ধ না করে SET স্টেটমেন্টের সাথে পাওয়া যাবে।

একটি টেবিলের জন্য কম্প্রেশন সক্ষম করতে, ধারাগুলি ROW_FORMAT=COMPRESSED, KEY_BLOCK_SIZE, বা উভয়ই একটি তৈরি টেবিল বা ALTER TABLE বিবৃতিতে ব্যবহার করা যেতে পারে৷

একটি সংকুচিত টেবিল −

তৈরি করার জন্য স্টেটমেন্টগুলো দেখি

কোয়েরি

SET GLOBAL innodb_file_per_table=1;
SET GLOBAL innodb_file_format=Barracuda;
CREATE TABLE t1
(c1 INT PRIMARY KEY)
ROW_FORMAT=COMPRESSED
KEY_BLOCK_SIZE=8;

এখানে,

  • যদি ROW_FORMAT=COMPRESSED নির্দিষ্ট করা থাকে, তাহলে KEY_BLOCK_SIZE বাদ দেওয়া যেতে পারে।

  • ডিফল্ট পৃষ্ঠার আকারের মান ব্যবহার করা হয়, এবং এটি অর্ধেক innodb_page_size মানের সমতুল্য।

  • KEY_BLOCK_SIZE নির্দিষ্ট করা থাকলে, ROW_FORMAT=COMPRESSED বাদ দেওয়া যেতে পারে।

  • কম্প্রেশন স্বয়ংক্রিয়ভাবে সক্রিয় করা হয়।

  • KEY_BLOCK_SIZE বৈশিষ্ট্যের জন্য সর্বোত্তম মান নির্ধারণ করতে, ব্যবহারকারীকে এই ধারার জন্য বিভিন্ন মান সহ একই টেবিলের একাধিক কপি তৈরি করতে হবে৷

  • একবার এটি হয়ে গেলে, ফলস্বরূপ .ibd ফাইলগুলির আকার পরিমাপ করুন এবং এটির প্রতিটি বাস্তবসম্মত কাজের চাপের সাথে কতটা ভাল কাজ করে তা নির্ধারণ করুন৷

  • KEY_BLOCK_SIZE মানটিকে একটি ইঙ্গিত হিসাবে বিবেচনা করা হয়৷

  • যদি innodb_strict_mode=ON, যদি একটি অবৈধ KEY_BLOCK_SIZE মান নির্দিষ্ট করা হয়, এটি একটি ত্রুটি প্রদান করে৷

  • InnoDB ডেটা পৃষ্ঠাগুলির ডিফল্ট অসংকুচিত আকার 16KB হিসাবে বিবেচিত হয়। বিকল্প মানগুলির সংমিশ্রণের উপর নির্ভর করে, MySQL টেবিলের .ibd ফাইলের জন্য 1KB, 2KB, 4KB, 8KB, বা 16KB পৃষ্ঠার আকার ব্যবহার করে৷

  • প্রকৃত কম্প্রেশন অ্যালগরিদম KEY_BLOCK_SIZE মান দ্বারা প্রভাবিত হয় না৷

  • গুচ্ছযুক্ত সূচী সহ একটি টেবিলের সমস্ত সূচী একই পৃষ্ঠার আকার ব্যবহার করে সংকুচিত হবে, যা টেবিল তৈরি করুন বা ALTER TABLE বিবৃতিতে উল্লেখ করা হয়েছে। ROW_FORMAT এবং KEY_BLOCK_SIZE-এর মতো টেবিলের বৈশিষ্ট্যগুলিকে InnoDB টেবিলের জন্য CREATE INDEX সিনট্যাক্সের একটি অংশ হিসাবে বিবেচনা করা হয় না। অত:পর, সেগুলি নির্দিষ্ট করা থাকলে উপেক্ষা করা হয়৷


  1. একটি MySQL পদ্ধতিতে একটি অস্থায়ী টেবিল তৈরি করবেন?

  2. গতিশীলভাবে টেবিল তৈরি করতে MySQL ক্যোয়ারী?

  3. একটি MySQL টেবিলে নন-ডুপ্লিকেট মান সন্নিবেশ করান

  4. মাইএসকিউএল টেবিলে ক্ষেত্র সংখ্যা পান?