gpt4 book ai didi

mysql - TinyText 和 Text - MySQL 的存储空间要求差异

转载 作者:可可西里 更新时间:2023-11-01 07:49:13 26 4
gpt4 key购买 nike

在MySQL手册Data Type Storage Requirements中,我发现:

Data Type   Storage Required
--------------------------------------------
TINYTEXT L + 1 bytes, where L < 2^8
TEXT L + 2 bytes, where L < 2^16
  1. 如果我在 TinyText 和 Text 字段中存储 240 个字符 [utf8-general],那么 Text 字段只会比 TinyText 多占用 1 个字节?
  2. 如果我存储 1024 个字母 [utf8-general],文本将占用多少空间?
    我认为是 1024+2 个字节!
  3. 如果我在文本字段中保存单个字符或 2^16 个字符,它会占用相同的空间吗?

最佳答案

  1. TinyText 最多只能存储 255 个字节。如果您不幸不得不存储 63 个字符,而这些字符都需要 4 个字节,那么这可能只有 63 个字符。另一方面,如果它们实际上都在 UTF-8 的 ASCII 子集中,它可以存储 255 个字符。

  2. 如果您存储 1024 个字符,它们将占用 1024 到 4096 (+2) 个字节。使用 UTF-8 编码的 Unicode 字符将占用 1 到 4 个字节。

  3. 需要一个字节 (U+0000 .. U+007F) 的单个字符在文本字段中需要 3 个字节(1 个用于字符,2 个用于长度)。另一方面,一个需要 4 个字节的字符(比如 U+101001——我不确定它作为 Unicode 字符是否有效,但它需要 4 个字节来存储它)总共需要 6 个字节来存储它。在这两种情况下,它都不接近 2^16 字节。

在处理 Unicode 时,一定要学会区分字节和字符;这非常重要。

关于mysql - TinyText 和 Text - MySQL 的存储空间要求差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5945006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com