zoukankan      html  css  js  c++  java
  • mysql中char,varchar与text类型的区别和选用

    转:

    mysql中char,varchar与text类型的区别和选用

    关于char,varchar与text平时没有太在意,一般来说,可能现在大家都是用varchar。但是当要存储的内容比较大时,究竟是选择varchar还是text呢?不知道。。。。。。

    text 、 char、varchar  是数据在数据库中的存放策略问题,为了,合理
    应用存储空间,是数据库服务器数据类型划分的方式。对于应用程序,把它们
    和string对应就可以了。

    于是去查阅了一些资料,顺便将这三种类型做个比较:

    (1)char:  char不用多说了,它是定长格式的,但是长度范围是0~255. 当你想要储存一个长度不足255的字符时,MySQL会用空格来填充剩下的字符。因此在读取数据时,char类型的数据要进行处理,把后面的空格去除。

    (2)varchar:  关于varchar,有的说最大长度是255,也有的说是65535,查阅很多资料后发现是这样的:varchar类型在5.0.3以下的版本中的最大长度限制为255,而在5.0.3及以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节(注意是字节而不是字符!!!)的数据(起始位和结束位占去了3个字节),也就是说,在5.0.3以下版本中需要使用固定的TEXT或BLOB格式存放的数据可以在高版本中使用可变长的varchar来存放,这样就能有效的减少数据库文件的大小。

    (3)text:与char和varchar不同的是,text不可以有默认值,其最大长度是2的16次方-1

    总结起来,有几点:

      1. 经常变化的字段用varchar
      2. 知道固定长度的用char
      3. 尽量用varchar
      4. 超过255字符的只能用varchar或者text
      5. 能用varchar的地方不用text           来源:http://blog.csdn.net/geniussnail/article/details/7753256
  • 相关阅读:
    1.5寻找倒数第k个元素
    MySQL基础之分组函数
    MySQL基础之单行函数
    MySQL基础查询(一)
    gem install redis Fetching: redis-4.1.3.gem (100%) ERROR: Error installing redis: redis requires Ruby version >= 2.3.0.
    SQL语句
    使用kill无法杀死mysql进程
    Ansible学习笔记
    rsync报错:rsync: chgrp ".hejian.txt.D1juHb" (in backup) failed: Operation not permitted (1)
    Linux磁盘管理
  • 原文地址:https://www.cnblogs.com/libin6505/p/10438079.html
Copyright © 2011-2022 走看看