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

MySQL टेबल कम्प्रेशन सक्षम करना (InnoDB)

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 नजरअंदाज किए जाते हैं।

सर्वोत्तम अभ्यास

  1. एक ही टेबल की कई कॉपी अलग-अलग KEY_BLOCK_SIZE के साथ बनाएं।
  2. परिणामी .ibd फ़ाइल आकार मापें।
  3. यथार्थवादी वर्कलोड पर प्रदर्शन परीक्षण करें।
  1. - MySQL में स्टोर्ड प्रोसीजर और प्रिपेयर्ड स्टेटमेंट का उपयोग करके डायनामिक टेबल बनाना

    MySQL में स्टोर्ड प्रोसीजर, PREPARE, EXECUTE, और डायनामिक SQL का उपयोग करके रनटाइम पर टेबल नाम निर्दिष्ट करके टेबल बनाएं। स्टोर्ड प्रोसीजर बनाना mysql> DELIMITER $$ mysql> CREATE PROCEDURE creatingDynamicTableDemo(yourTableName VARCHAR(200)) -> BEGIN -> SET @name = yourTabl

  1. - MySQL टेबल में डुप्लीकेट मान रोकने के लिए UNIQUE कंस्ट्रेंट का उपयोग

    UNIQUE कंस्ट्रेंट से डुप्लीकेट एंट्री रोकना MySQL में किसी कॉलम या कॉलम्स के कॉम्बिनेशन पर यूनिक वैल्यू लागू करने के लिए UNIQUE कंस्ट्रेंट का उपयोग किया जाता है। टेबल बनाना UNIQUE कंस्ट्रेंट के साथ CREATE TABLE DemoTable832( FirstName VARCHAR(100), LastName VARCHAR(100), UNIQUE(FirstNam

  1. - MySQL टेबल में फ़ील्ड्स (कॉलम) की संख्या कैसे प्राप्त करें

    MySQL में फ़ील्ड्स की संख्या प्रदर्शित करने के लिए COUNT(*) का उपयोग करें। निम्नलिखित सिंटैक्स है: select COUNT(*) AS anyAliasName from INFORMATION_SCHEMA.COLUMNS where table_name = yourTableName AND TABLE_SCHEMA = yourDatabaseName; आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable794