代码之家  ›  专栏  ›  技术社区  ›  user4875712

mysql中的数据类型大小和存储

  •  1
  • user4875712  · 技术社区  · 7 年前

    我是一个使用mysql datatbase的乞丐。我试图将用户数据保存在一个大的Json文件中,在最坏的情况下,该文件的大小约为5Mb。很明显,我应该使用大文本,但我想知道剩余的11Mb会发生什么。它浪费了吗?

    2 回复  |  直到 7 年前
        1
  •  1
  •   ScaisEdge    7 年前

    对于INNODB数据库中的数据类型存储,您可以参考以下mysql文档链接 https://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html 基本上,您可以使用这些维度存储数据

    TINYBLOB, TINYTEXT    L < 2^8 ( 2^8 - 1 byte)
    BLOB, TEXT            L < 2^16 ( 2^16 - 2 bytes)
    MEDIUMBLOB, MEDIUMTEXT   L < 2^24 (2^24 -3 bytes)
    LONGBLOB, LONGTEXT    L < 2^32 (2^32 - 4 bytes)
    

    因此,对于11MB的文件,您可以再次使用MEDIUMTEXT

        2
  •  0
  •   Bill Karwin    7 年前

    嗯,这里有一点“四舍五入”的空间,因为空间是在整个16KB页面中分配的,最大可达半MB,然后一次分配1MB给超过半MB的BLOB/TEXT文档。但我不会担心这个。

    MySQL中的所有可变长度数据类型都是这样工作的。VARCHAR、VARBINARY、TEXT、BLOB以及所有不同类型的TEXT和BLOB。