zoukankan      html  css  js  c++  java
  • MySQL中char、varchar和text的区别

    三者空间占用方面:

    char:存储定长数据很方便,CHAR字段上的索引效率极高,可以有默认值,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间(自动用空格填充),且在检索的时候后面的空格会隐藏掉,所以检索出来的数据需要记得用strip()之类的函数去过滤空格。
    varchar:存储变长数据,但存储效率没有CHAR高。保存数据的时候,不进行空格自动填充,而且如果数据存在空格时,当值保存和检索时尾部的空格仍会保留。另外,varchar类型的实际长度是它的值的实际长度+1,这一个字节用于保存实际使用了多大的长度
    text:存储可变长度的非Unicode数据,最大长度为2^31-1个字符。存储或检索过程中,不存在大小写转换。

    [补充]UTF8字符:

    基本拉丁字母、数字和标点符号使用一个字节;
    大多数的欧洲和中东手写字母适合两个字节序列:扩展的拉丁字母(包括发音符号、长音符号、重音符号、低音符号和其它音符)、西里尔字母、希腊语、亚美尼亚语、希伯来语、阿拉伯语、叙利亚语和其它语言;
    韩语、中文和日本象形文字使用三个字节序列。

    总结:

    尽量用varchar,能用varchar的地方不用text
    char最大255个字符
    varchar最大65535个字节(因此不同字符集,所能存储的字符个数是不同的)
    text最大65535字符

    确定最大长度限制是字符还是字节的例子,可以参考这篇文章


    References:
    MySQL中char、varchar和text的区别
    MySQL CHAR和VARCHAR那些事
    mysql类型varchar()与text有什么区别?[12楼]

  • 相关阅读:
    字典的创建以及操作
    对列表的操作
    python中列表中元素的增删改查
    pycharm中代码整体缩进
    pycharm的简介
    break,continue的区别
    python_字符串的格式化输出
    Zabbix安装图解教程
    性能瓶颈定位整体思路
    数据库监控的指标
  • 原文地址:https://www.cnblogs.com/lxw0109/p/char_varchar_text_mysql.html
Copyright © 2011-2022 走看看