首页  >  问答  >  正文

Laravel 迁移中的 Text 和 LongText 有什么区别?

下面列出了迁移文件部分:

Schema::create('samples', function (Blueprint $table) {
        $table->id();
        $table->text('title1');
        $table->longText('title2');
        $table->timestamps();
    });


P粉268284930P粉268284930320 天前621

全部回复(2)我来回复

  • P粉523335026

    P粉5233350262023-11-09 15:20:48

    这与 Laravel 迁移无关,而是表列的数据类型,取决于文本字符串的大小。

    TINYTEXT:255 个字符 - 255 B

    TINYTEXT 数据对象是 TEXT 系列中最小的一个,旨在高效存储短信息字符串。该类型最多可以存储 255 个字节(表示为 2^8 -1)或 255 个字符,并且需要 1 个字节的开销。该对象可用于存储简短摘要、URL 链接和其他较短对象等内容。当存储长度小于 255 个字符且长度不一致且无需用于排序条件的数据时,TINYTEXT 优于 VARCHAR

    文本:65,535 个字符 - 64 KB

    标准的TEXT数据对象足以处理典型的长格式文本内容。 TEXT 数据对象的最大大小为 64 KB(表示为 2^16 -1)或 65,535 个字符,需要 2 字节的开销。它足够大,足以容纳文章之类的文本,但不足以容纳整本书的文本。

    MEDIUMTEXT:16,777,215 个字符 - 16 MB

    MEDIUMTEXT 数据对象对于存储较大的文本字符串(例如白皮书、书籍和代码备份)非常有用。这些数据对象可以大到 16 MB(表示为 2^24 -1)或 16,777,215 个字符,并且需要 3 个字节的开销存储。

    长文本:4,294,967,295 个字符 - 4 GB

    LONGTEXT 数据对象用于极端文本字符串存储用例。当 MEDIUMTEXT 对象不够大时,这是一个可行的选择。计算机程序和应用程序通常会达到LONGTEXT范围内的文本长度。这些数据对象最大可达 4 GB(表示为 2^32 -1),最多可存储 4,294,967,295 个字符,并需要 4 字节的开销存储

    请注意,列中可以存储的字符数取决于字符编码。

    回复
    0
  • P粉107772015

    P粉1077720152023-11-09 13:34:15

    文本最多可处理 65,535 个字符

    长文本最多可处理 4,294,967,295 个字符

    回复
    0
  • 取消回复