Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

MySQL संपीड़न सक्षम करें


संपीड़ित तालिका बनाने से पहले, सुनिश्चित करें कि 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 सिंटैक्स का हिस्सा नहीं माना जाता है। इसलिए, यदि उन्हें निर्दिष्ट किया जाता है तो उन्हें अनदेखा कर दिया जाता है।


  1. MySQL क्वेरी गतिशील रूप से तालिका बनाने के लिए?

    इसके लिए आप संग्रहित प्रक्रिया का उपयोग कर सकते हैं। आइए हम गतिशील रूप से दो स्तंभों के साथ एक तालिका बनाते हैं अर्थात छात्र आईडी int के रूप में, जबकि छात्र नाम वर्कर के रूप में - mysql> DELIMITER $$ mysql> CREATE PROCEDURE creatingDynamicTableDemo(yourTableName VARCHAR(200))    ->

  1. एक MySQL तालिका में गैर-डुप्लिकेट मान डालें

    केवल गैर-डुप्लिकेट मान सम्मिलित करने की अनुमति देने के लिए, UNIQUE बाधा का उपयोग करें। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable832(FirstName varchar(100), LastName varchar(100), UNIQUE(FirstName,LastName));क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.87 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ र

  1. MySQL तालिका में फ़ील्ड की संख्या प्राप्त करें?

    MySQL में फ़ील्ड की संख्या प्रदर्शित करने के लिए, COUNT(*) का उपयोग करें। निम्नलिखित वाक्य रचना है - INFORMATION_SCHEMA से किसी भी उपनाम के रूप में COUNT(*) का चयन करें।COLUMNSजहां table_name =yourTableName ANDTABLE_SCHEMA =yourDatabaseName; आइए पहले एक टेबल बनाएं - तालिका बनाएं DemoTable794 ( Cl