zoukankan      html  css  js  c++  java
  • mysql char varchar 区别

    数据库建表  字符串字段类型的选择

    char与varchar的区别:

               char      长度固定,char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.(在检索操作中那些填补出来的空格字符将

                           被去掉)

               varchar  长度可变,在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节).

               比如char(255)和varchar(255)存储字符串"hello world"

               char会用一块255的空间放那个11个字符

               varchar就不会用255个,他先计算长度后只用11个再加上计算的到字符串长度信息,一般1-2个byte来,这样varchar在存储不确定长度的时候会大大减少存储空间。 

    注明:在用char字符类型时内容后面有空间时必须作相关处理,要不就会把空格自动删除。

    建议:

       根据字符的长度来判断,是考虑其长度的是否相近来确定选择char还是varchar,如何字段的长度基本都是一样或者其长度总是近似的可以选用char

       是从碎片角度进行考虑用可变长度的字符型数据时,数据库管理员要时不时的对碎片进行整理。如执行数据库导出导入作业,来消除碎片。

       即使使用Varchar数据类型,也不能够太过于慷慨!比如你只使用到90个字符,VARCHAR(100)与VARCHAR(200)真的相同吗?结果是否定的。虽然他们用来存储90个字符的数据,其存      储空间相同。但是对于内存的消耗是不同的。

       myisam 存储引擎 建议使用固定长度,数据列代替可变长度的数据列。 

       memory存储引擎 目前都使用固定数据行存储,因此无论使用char varchar列都没关系, 

       innodb 存储引擎 建意使用varchar 类型 

  • 相关阅读:
    QBoxLayout中setSpacing(int)和addSpacing(int)的区别
    BZOJ1017 树形DP
    树形DP 2415HDU
    树形DP基础题 HDU1520
    最小生成树个数 并查集压缩路径
    伸展树基本概念基本题目
    BZOJ1010单调性DP优化
    BZOJ1009 矩阵快速幂+DP+KMP
    字典树(数组实现)
    poj 1611 The Suspects(并查集输出集合个数)
  • 原文地址:https://www.cnblogs.com/lijiageng/p/5660887.html
Copyright © 2011-2022 走看看