MySql संस्करण 8.0 के लिए।
संख्यात्मक प्रकार भंडारण आवश्यकताएँ
Data Type Storage Required
TINYINT 1 byte
SMALLINT 2 bytes
MEDIUMINT 3 bytes
INT, INTEGER 4 bytes
BIGINT 8 bytes
FLOAT(p) 4 bytes if 0 <= p <= 24, 8 bytes if 25 <= p <= 53
FLOAT 4 bytes
DOUBLE, REAL 8 bytes
DECIMAL(M,D), NUMERIC(M,D) Varies; see following discussion
BIT(M) approximately (M+7)/8 bytes
DECIMAL (और NUMERIC) कॉलम के मानों को एक बाइनरी प्रारूप का उपयोग करके दर्शाया गया है जो नौ दशमलव (बेस 10) अंकों को चार बाइट्स में पैक करता है। प्रत्येक मूल्य के पूर्णांक और आंशिक भागों के लिए भंडारण अलग-अलग निर्धारित किया जाता है। नौ अंकों में से प्रत्येक को चार बाइट्स की आवश्यकता होती है, और "बचे हुए" अंकों को चार बाइट्स के कुछ अंश की आवश्यकता होती है। अतिरिक्त अंकों के लिए आवश्यक संग्रहण निम्न तालिका द्वारा दिया गया है।
TIME, DATETIME, और TIMESTAMP स्तंभों के लिए दिनांक और समय प्रकार संग्रहण आवश्यकताएँ, MySQL 5.6.4 से पहले बनाए गए तालिकाओं के लिए आवश्यक संग्रहण 5.6.4 से निर्मित तालिकाओं से भिन्न होता है। यह 5.6.4 में परिवर्तन के कारण है जो इन प्रकारों को एक आंशिक भाग होने की अनुमति देता है, जिसके लिए 0 से 3 बाइट्स की आवश्यकता होती है।
Data Type Storage Required Before MySQL 5.6.4 Storage Required as of MySQL 5.6.4
YEAR 1 byte 1 byte
DATE 3 bytes 3 bytes
TIME 3 bytes 3 bytes + fractional seconds storage
DATETIME 8 bytes 5 bytes + fractional seconds storage
TIMESTAMP 4 bytes 4 bytes + fractional seconds storage
MySQL 5.6.4 के रूप में, YEAR और DATE के लिए संग्रहण अपरिवर्तित रहता है। हालाँकि, TIME, DATETIME, और TIMESTAMP को अलग-अलग रूप में दर्शाया गया है। DATETIME को और अधिक कुशलता से पैक किया जाता है, गैर-आंशिक भाग के लिए 8 बाइट्स के बजाय 5 की आवश्यकता होती है, और तीनों भागों में एक आंशिक भाग होता है, जिसमें संग्रहीत मानों की आंशिक सेकंड सटीकता के आधार पर 0 से 3 बाइट्स की आवश्यकता होती है।
Fractional Seconds Precision Storage Required
0 0 bytes
1, 2 1 byte
3, 4 2 bytes
5, 6 3 bytes
उदाहरण के लिए, TIME (0), TIME (2), TIME (4), और TIME (6) क्रमशः 3, 4, 5 और 6 बाइट्स का उपयोग करते हैं। TIME और TIME (0) समतुल्य हैं और उन्हें समान संग्रहण की आवश्यकता होती है।
अस्थायी मूल्यों के आंतरिक प्रतिनिधित्व के बारे में जानकारी के लिए, MySQL इंटरनेशनल: महत्वपूर्ण एल्गोरिदम और संरचनाएं देखें।
स्ट्रिंग प्रकार संग्रहण आवश्यकताएँ निम्न तालिका में, M गैर-स्ट्रिंग स्ट्रिंग प्रकारों के लिए वर्णों में घोषित स्तंभ लंबाई और बाइनरी स्ट्रिंग प्रकारों के लिए बाइट्स का प्रतिनिधित्व करता है। एल एक दिए गए स्ट्रिंग मान के बाइट्स में वास्तविक लंबाई का प्रतिनिधित्व करता है।
Data Type Storage Required
CHAR(M) The compact family of InnoDB row formats optimize storage for variable-length character sets. See COMPACT Row Format Characteristics. Otherwise, M × w bytes, <= M <= 255, where w is the number of bytes required for the maximum-length character in the character set.
BINARY(M) M bytes, 0 <= M <= 255
VARCHAR(M), VARBINARY(M) L + 1 bytes if column values require 0 − 255 bytes, L + 2 bytes if values may require more than 255 bytes
TINYBLOB, TINYTEXT L + 1 bytes, where L < 28
BLOB, TEXT L + 2 bytes, where L < 216
MEDIUMBLOB, MEDIUMTEXT L + 3 bytes, where L < 224
LONGBLOB, LONGTEXT L + 4 bytes, where L < 232
ENUM('value1','value2',...) 1 or 2 bytes, depending on the number of enumeration values (65,535 values maximum)
SET('value1','value2',...) 1, 2, 3, 4, or 8 bytes, depending on the number of set members (64 members maximum)