संपीड़ित तालिका बनाने से पहले, सुनिश्चित करें कि innodb_file_per_table कॉन्फ़िगरेशन विकल्प सक्षम है, और innodb_file_format बाराकुडा पर सेट है। ये पैरामीटर MySQL कॉन्फ़िगरेशन फ़ाइल my.cnf या my.ini, या SET कथन के साथ MySQL सर्वर को बंद किए बिना पाए जा सकते हैं।
किसी तालिका के लिए संपीड़न सक्षम करने के लिए, खंड ROW_FORMAT=COMPRESSED, KEY_BLOCK_SIZE, या दोनों का उपयोग तालिका बनाने या तालिका बदलने के विवरण में किया जा सकता है।
आइए कंप्रेस्ड टेबल बनाने के लिए स्टेटमेंट देखें -
क्वेरी
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 मान से प्रभावित नहीं होता है।
-
क्लस्टर किए गए अनुक्रमणिका सहित तालिका के सभी अनुक्रमित उसी पृष्ठ आकार का उपयोग करके संपीड़ित किए जाएंगे, जो तालिका बनाएं या तालिका में परिवर्तन कथन में निर्दिष्ट है। ROW_FORMAT और KEY_BLOCK_SIZE जैसी तालिका विशेषताओं को InnoDB तालिकाओं के लिए CREATE INDEX सिंटैक्स का हिस्सा नहीं माना जाता है। इसलिए, यदि उन्हें निर्दिष्ट किया जाता है तो उन्हें अनदेखा कर दिया जाता है।