InnoDB टेबल कम्प्रेशन के लिए innodb_file_per_table=ON और innodb_file_format=Barracuda आवश्यक हैं। ये my.cnf/my.ini में या रनटाइम पर SET GLOBAL से सेट करें।
कम्प्रेस्ड टेबल बनाना
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वैकल्पिक)।KEY_BLOCK_SIZEएक संकेत (हिंट) है; अमान्य मान परinnodb_strict_mode=ONहोने पर त्रुटि होती है।- डिफ़ॉल्ट अनकम्प्रेस्ड पेज आकार 16KB; कम्प्रेशन के बाद 1KB, 2KB, 4KB, 8KB, या 16KB हो सकता है।
- टेबल के सभी इंडेक्स (क्लस्टर्ड सहित) समान पेज आकार का उपयोग करते हैं।
CREATE INDEXमेंROW_FORMAT/KEY_BLOCK_SIZEनजरअंदाज किए जाते हैं।
सर्वोत्तम अभ्यास
- एक ही टेबल की कई कॉपी अलग-अलग
KEY_BLOCK_SIZEके साथ बनाएं। - परिणामी
.ibdफ़ाइल आकार मापें। - यथार्थवादी वर्कलोड पर प्रदर्शन परीक्षण करें।