MySql sürüm 8.0 için.
Sayısal Tip Depolama Gereksinimleri
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 (ve NUMERIC) sütun değerleri, dokuz ondalık (temel 10) basamağı dört bayta paketleyen bir ikili biçim kullanılarak temsil edilir. Her değerin tamsayı ve kesirli kısımları için depolama ayrı ayrı belirlenir. Dokuz basamaktan her biri dört bayt gerektirir ve “artık” basamaklar dört baytlık bir kısım gerektirir. Fazla hane için gereken depolama alanı aşağıdaki tabloda verilmiştir.
Tarih ve Saat Türü Depolama Gereksinimleri TIME, DATETIME ve TIMESTAMP sütunları için, MySQL 5.6.4'ten önce oluşturulan tablolar için gereken depolama alanı 5.6.4 ve sonrasında oluşturulan tablolardan farklıdır. Bunun nedeni, bu türlerin 0 ila 3 bayt gerektiren kesirli bir bölüme sahip olmasına izin veren 5.6.4'teki bir değişikliktir.
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 itibarıyla YEAR ve DATE için depolama alanı değişmeden kalmıştır. Ancak, TIME, DATETIME ve TIMESTAMP farklı şekillerde temsil edilir. DATETIME, daha verimli bir şekilde paketlenir, kesirli olmayan parça için 8 bayt yerine 5 bayt gerektirir ve üç parçanın da, saklanan değerlerin kesirli saniye hassasiyetine bağlı olarak 0 ila 3 bayt gerektiren bir kesirli kısmı vardır.
Fractional Seconds Precision Storage Required
0 0 bytes
1, 2 1 byte
3, 4 2 bytes
5, 6 3 bytes
Örneğin, TIME (0), TIME (2), TIME (4) ve TIME (6) sırasıyla 3, 4, 5 ve 6 bayt kullanır. TIME ve TIME (0) eşdeğerdir ve aynı depolama alanını gerektirir.
Zamansal değerlerin dahili gösterimi hakkında ayrıntılar için, bkz. MySQL Internals: Önemli Algoritmalar ve Yapılar.
Dize Türü Depolama Gereksinimleri Aşağıdaki tabloda, M, ikili olmayan dize türleri için karakterlerde bildirilen sütun uzunluğunu ve ikili dize türleri için baytları temsil eder. L, belirli bir dize değerinin bayt cinsinden gerçek uzunluğu temsil eder.
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)