zoukankan      html  css  js  c++  java
  • MySQL 字段类型占用空间

    MySQL支持多种列类型:数值类型、日期/时间类型和字符串(字符)类型。 
    首先来看下各类型的存储需求(即占用空间大小):

    数值类型存储需求

    列类型存储需求
    TINYINT 1个字节
    SMALLINT 2个字节
    MEDIUMINT 3个字节
    INT, INTEGER 4个字节
    BIGINT 8个字节
    FLOAT(p) 如果0 <= p <= 24为4个字节, 如果25 <= p <= 53为8个字节
    FLOAT 4个字节
    DOUBLE [PRECISION], item REAL 4个字节
    DECIMAL(M,D), NUMERIC(M,D) 变长(0-4个字节)
    BIT(M) 大约(M+7)/8个字节

     

    int(10)这里的10指的是数值的宽度,并不是字节

    日期和时间类型的存储需求

    列类型存储需求
    DATE 3个字节
    DATETIME 8个字节
    TIMESTAMP 4个字节
    TIME 3个字节
    YEAR 1个字节



    字符串类型的存储需求

    列类型存储需求
    CHAR(M) M个字节,0 <= M <= 255
    VARCHAR(M) L+1个字节,其中L <= M 且0 <= M <= 65535
    BINARY(M) M个字节,0 <= M <= 255
    VARBINARY(M) L+1个字节,其中L <= M 且0 <= M <= 255
    TINYBLOB, TINYTEXT L+1个字节,其中L < 28
    BLOB, TEXT L+2个字节,其中L < 216
    MEDIUMBLOB, MEDIUMTEXT L+3个字节,其中L < 224
    LONGBLOB, LONGTEXT L+4个字节,其中L < 232
    ENUM(‘value1’,’value2’,…) 1或2个字节,取决于枚举值的个数(最多65,535个值)
    SET(‘value1’,’value2’,…) 1、2、3、4或者8个字节,取决于set成员的数目(最多64个成员)

     

    上表的M只是为了说明占用空间大小,在实际创建表中char(20)、varchar(20),20指的是字符而不是字节(4.0版本以上,以下指的是字节);那么字符和字节的转换要看字符集,utf-8下,1字符=3字节;gbk下,1字符=2字节。

    接下来会剖析varchar最大长度和text占用空间问题。

    参考来源:https://blog.csdn.net/free_ant/article/details/52936722

  • 相关阅读:
    新概念第二册(1)--英语口语听力课1
    外企面试课程(一)---熟悉常见的缩略词
    公司 邮件 翻译 培训 长难句 结课
    workflow
    公司 邮件 翻译 培训 长难句 20
    公司 邮件 翻译 培训 长难句 19
    Engineering Management
    公司 邮件 翻译 培训 长难句 18
    公司 邮件 翻译 培训 长难句 17
    第14.5节 利用浏览器获取的http信息构造Python网页访问的http请求头
  • 原文地址:https://www.cnblogs.com/jingmin/p/9101332.html
Copyright © 2011-2022 走看看