Mysql数据类型占用字节以及如何查看存储大小

2024/7/15·1 views
  • TINYINT 1 字节
  • SMALLINT 2 个字节
  • MEDIUMINT 3 个字节
  • INT 4 个字节
  • INTEGER 4 个字节
  • BIGINT 8 个字节
  • FLOAT(X) 4 如果 X < = 24 或 8 如果 25 < = X < = 53
  • FLOAT 4 个字节
  • DOUBLE 8 个字节
  • DOUBLE PRECISION 8 个字节
  • REAL 8 个字节
  • DECIMAL(M,D) M字节(D+2 , 如果M < D)
  • NUMERIC(M,D) M字节(D+2 , 如果M < D)
  • DATE 3 个字节
  • DATETIME 8 个字节
  • TIMESTAMP 4 个字节
  • TIME 3 个字节
  • YEAR 1 字节
  • CHAR(M) M字节,1 <= M <= 255
  • VARCHAR(M) L+1 字节, 在此L <= M和1 <= M <= 255
  • TINYBLOB, TINYTEXT L+1 字节, 在此L< 2 ^ 8
  • BLOB, TEXT L+2 字节, 在此L< 2 ^ 16
  • MEDIUMBLOB, MEDIUMTEXT L+3 字节, 在此L< 2 ^ 24
  • LONGBLOB, LONGTEXT L+4 字节, 在此L< 2 ^ 32
  • ENUM('value1','value2',...) 1 或 2 个字节, 取决于枚举值的数目(最大值65535)
  • SET('value1','value2',...) 1,2,3,4或8个字节, 取决于集合成员的数量(最多64个成员
类型 字节 最小值 最大值
(带符号的/无符号的) (带符号的/无符号的)
TINYINT 1 -128 127
0 255
SMALLINT 2 -32768 32767
0 65535
MEDIUMINT 3 -8388608 8388607
0 16777215
INT 4 -2147483648 2147483647
0 4294967295
BIGINT 8 -9223372036854775808 9223372036854775807
0 18446744073709551615
sql 复制代码
SELECT
    table_name AS `Table` ,
    round(
        (
            (data_length + index_length) / 1024 / 1024
        ) ,
        2
    ) `Size (MB)`
FROM
    information_schema. TABLES
WHERE
    table_schema = "youDataBase";
--查询表中某一个字段的空间占用

SELECT sum(char_length($字段名))/1024/1024 as 'M' FROM $yourTable;
快来和小猫聊天吧~