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

VARCHAR和CHAR有什么区别?

  •  312
  • steven  · 技术社区  · 16 年前

    MySQL中的VARCHAR和CHAR有什么区别?

    14 回复  |  直到 16 年前
        1
  •  397
  •   DjaouadNM    8 年前

    VARCHAR 是可变长度的。

    CHAR

    如果您的内容是固定大小的,那么您可以使用 烧焦 .

    CHAR and VARCHAR Types 有关详细说明(请务必阅读评论)。

        2
  •  235
  •   Mark Amery Harley Holcombe    6 年前

    烧焦

    1. 用于存储的字符串值 .
    2. 数据类型可以容纳的最大字符数为 .
    3. 它是 比瓦查尔好。
    4. 静态内存分配 .

    瓦尔查尔

    1. 用于存储 可变长度 字母数字数据。
      • 255个字符
      • 发布MySQL 5.0.3: 65535个字符 为该行共享。
    2. 更慢的
    3. 使用 动态内存分配
        3
  •  130
  •   Sampson    16 年前

    CHAR Vs VARCHAR


    VARCHAR用于可变长度大小变量。

    Create table temp
    (City CHAR(10),
    Street VARCHAR(10));
    
    Insert into temp
    values('Pune','Oxford');
    
    select length(city), length(street) from temp;
    

    输出将是

    length(City)          Length(street)
    10                    6
    

    结论:如果可变长度是可变的,为了有效地使用存储空间,必须使用VARCHAR代替CHAR

        4
  •  79
  •   SLaks    16 年前

    CHAR(x) 列只能有 确切地 x
    VARCHAR(x) 列可以有 高达 人物。

    因为您的MD5哈希值总是相同的大小,所以您可能应该使用 CHAR .



    如果要对密码进行哈希运算,则应使用bcrypt。

        5
  •  11
  •   reformed Ezequiel García    10 年前

    OLTP 使用频繁更新的系统或系统考虑使用 CHAR VARCHAR 更新期间的列碎片。

    我正在尝试存储MD5哈希。

    BINARY 改为键入(例如,MD5将生成16字节的哈希,因此 BINARY(16) 就足够了,而不是 CHAR(32) 用于表示十六进制数字的32个字符。这将节省更多空间并提高性能。

        6
  •  10
  •   Gigazelle    7 年前

        7
  •  9
  •   Greg Fenton    16 年前

    一如既往, Wikipedia 说话大声点。

        8
  •  8
  •   Andrew    16 年前

    CHAR是一个固定长度的字段;VARCHAR是一个可变长度字段。如果您存储的字符串长度可变,例如名称,则使用VARCHAR;如果长度始终相同,则使用CHAR,因为它的大小效率略高,速度也略快。

        9
  •  4
  •   Donnie DeBoer    16 年前

    CHAR是固定长度,VARCHAR是可变长度。CHAR始终使用每个条目相同的存储空间,而VARCHAR仅使用存储实际文本所需的空间。

        10
  •  1
  •   Mark Amery Harley Holcombe    8 年前

    char是固定长度的字符数据类型,varchar是可变长度的字符数据类型。

    当一列中的数据项预期大小相同时,可以使用char。 当一列中的数据项的大小预计会有很大差异时,可以使用varchar。

        11
  •  1
  •   Dhanika    5 年前

    • CHAR是一种固定长度的字符串数据类型,因此字段中的任何剩余空间都用空格填充。

    瓦尔查尔

    • VARCHAR是一种可变长度的字符串数据类型,因此它只保存您分配给它的字符。
        12
  •  0
  •   Alireza Rahmani Khalili    7 年前

    根据 High Performance MySQL 书:

    瓦尔查尔 固定长度类型,因为它只使用所需的空间 (即,用于存储较短值的空间较小)。例外情况是 每行磁盘上的空间不足,因此可能会浪费空间。

    烧焦 删除任何尾随空格(MySQL中的VARCHAR也是如此 4.1和更早版本的CHAR和VAR CHAR在逻辑上相同,仅在存储格式上不同。)值以空格填充,如下所示:

        13
  •  -4
  •   Arsen Mkrtchyan    10 年前

    Char 具有固定长度(支持2000个字符),表示字符是数据类型

    Varchar 具有可变长度(支持4000个字符)

        14
  •  -6
  •   Amy    11 年前

    Char或varchar-用于输入文本数据,其中长度可以用括号表示

        15
  •  -11
  •   Y.R.S.REDDY    11 年前

    烧焦:

    • 支持字符和;数字。
    • 支持2000个字符。

    瓦查尔:

    • 支持字符和;数字。
    • 可变长度。