zoukankan      html  css  js  c++  java
  • Mysql Char 和 Varchar的区别

     

    CHARVARCHAR都是字符串类型,它们的具体区别为:

     

    长度大小区别:

    • CHAR(M)定义的列的长度为固定的,M取值可以为0~255之间;
    • VARCHAR(M)定义的列的长度为可变长,M取值可以为0~65535之间,(VARCHAR的最大有效长度由最大行大小和使用 的字符集确定。整体最大长度是65,532字节)。

     

    存数据时的区别:

    • CHAR值存储时,如果字符数没有达到定义的位数,会在后面用空格补全,再存入数据库中。比如定义 CHAR(10),那么不论存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充;
    • VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。VARCHAR值保存时不进行填充

     

    取数据时的区别:

    • 数据库取CHAR值时,尾部的空格会被删除;
    • 数据库取VARCHAR值时,尾部的空格仍然保留。

     

    总结:

     

      CHAR定长,一般用于固定长度的表单提交数据存储 ;例如:身份证号,手机号,电话,密码等;而VARCHAR不定长。

      从空间上考虑,VARCHAR更好,从效率上考虑,CHAR更好。
     
      这其中的选择就需要我们根据情况自己考量。


  • 相关阅读:
    shell getopt getopts获取参数
    apache+svn+ladp认证
    SVN 迁移项目分支
    iptables 优先级
    很实用的一篇HTTP状态码
    套路还在——矩阵计算估值
    CU上看到的一个简单的算法帖子
    linux下服务端实现公网数据转发
    c++接口实现与分离(转载)
    c++继承概念
  • 原文地址:https://www.cnblogs.com/starfish29/p/12492028.html
Copyright © 2011-2022 走看看