1.       经常变化的字段用char

2.       知道固定长度的用char

3.       尽量用varchar

4.       超过255字节的只能用varchar或者text

5.       能用varchar的地方不用text

VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定,最大有效长度是65,532字节

注:我测试了一下使用UTF8编码,varchar的最大长度为21854字节。

在mysql 5.0.45版本,数据库编码utf8下进行测试:varchar最长定义为21785。也就是说不论字母、数字、汉字,只能放21785个。

推想:varchar字节最大65535,utf8编码一个字符3个字节65535/3=21785。

MySQL数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来 定)。

在MySQL5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节的数据,起始位和结束位占去了3个 字节。

所以问了兼容在4.1或以下版本可以把5.0大的varchar改为使用text。当然如果不考虑兼容性使用varchar代替text有效的减少数据库 文件的大小

Varchar 的类型不以空格填满,比如varchar(100),但它的值只是”n”,则它的值就是”n”

而char 不一样,比如char(100),它的值是”n”,而实际上它在数据库中是”n “(n后共有99个空格,就是把它填满为100个字节)。

由于 char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉!

char会造成空间浪费,但是有速度优势;而varchar节省了空间,但是速度就不如char。

分享到:

2012-08-25 21:41

浏览 1373

分类:数据库

评论

mysql字符串字段类型_MySQL字符串字段类型选择的一般规则相关推荐

  1. mysql sql字符串连接函数_Mysql字符串连接函数 CONCAT()与 CONCAT_WS()

    从数据库里取N个字段,然后组合到一起用","分割显示,起初想到用CONCAT()来处理,好是麻烦,没想到在手册里居然有提到 CONCAT_WS(),非常好用. CONCAT_WS( ...

  2. mysql 常用的列类型_MySQL 常用列类型

    日期和时间类型为DATETIME.DATE.TIMESTAMP.TIME和YEAR. 注意:在MySQL中,日期时间值使用单引号引起来. 相当于Java中Date,Calender. 最常用的整数类型 ...

  3. mysql数据库数字类型_Mysql 数据库数值类型详解

    MySQL 支持所有标准SQL 中的数值类型,其中包括严格数值类型(INTEGER.SMALLINT.DECIMAL 和NUMERIC),以及近似数值数据类型(FLOAT.REAL 和DOUBLE P ...

  4. mysql中字符串拼接函数_MySQL 字符串连接CONCAT()函数

    MySQL字符串连接函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制字符 ...

  5. mysql数据库blob换行_mysql数据库blob类型

    Java -- JDBC 学习--处理Blob Oracle LOB LOB,即Large Objects(大对象),是用来存储大量的二进制和文本数据的一种数据类型(一个LOB字段可存储可多达4GB的 ...

  6. mysql float 精度阶段_mysql下float类型使用一些误差详解

    单精度浮点数用4字节(32bit)表示浮点数 采用IEEE754标准的计算机浮点数,在内部是用二进制表示的 如:7.22用32位二进制是表示不下的. 所以就不精确了. mysql中float数据类型的 ...

  7. mysql数据库表中的类型_MySQL数据库中表类型MyISAM与InnoDB的区别

    MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处 ...

  8. mysql 正无穷字符_mysql 字符串函数收集比较全

    ASCII(str)返回字符串str的 最左面字符的ASCII代码值.如果str是空字符串, 返回0.如果str是NULL,返回NULL. mysql> select ASCII('2'); - ...

  9. mysql 字符串 截取字母_MySQL字符串函数:字符串截取

    MySQL 字符串截取函数:left(), right(), substring(), substring_index().还有 mid(), substr().其中,mid(), substr() ...

  10. mysql 字符串函数大全_mysql 字符串函数大全

    返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NULL.mysql> select ASCII('2'); -> 50mysql& ...

最新文章

  1. java 内部类 引用_在Java中如何从内部引用匿名内部类?
  2. 怎么用git将本地代码上传到远程服务器_TortoiseGit将本地git仓库上传到远程git服务器方法...
  3. 网工路由基础(6)BGP协议
  4. oracle asm 日志,Oracle+RAC+ASM数据库ora-00257日志归档器错误解决方法
  5. 服务器维护:FTP无法连接
  6. 阿里云资深技术专家李克畅谈边缘云计算趋势与实践
  7. 立足优势,你的网站会更精彩
  8. ZZULIOJ 1121: 电梯
  9. 小白学深度之LSTM长短期记忆神经网络——深度AI科普团队
  10. Emgu-WPF学习使用-阈值化
  11. Kaggle 商品销量预测季军方案出炉,应对时间序列问题有何妙招
  12. 设置Listview行高--小技巧
  13. Win32屏幕保护程序
  14. RStudio 使用ARM版Ruby mac M1 编译安装适用及x86Ruby安装使用 安装ARM版homebrew
  15. 附加和分离SQL数据库
  16. Contrastive learning的学习
  17. 2019 icpc南昌邀请赛 G Winner
  18. VMware界面大小调整两种方法超详细教程
  19. Linux 4.19.111 供电(power supply )子系统
  20. 金属有机骨架MOFs装载抗病毒药物|ZIF-8/石墨烯复合纳米颗粒(ZIF-8/GQDs)负载阿霉素(DOX)齐岳

热门文章

  1. ng-repeat part1 - how UI is rendered from {{name}} to actual value
  2. 使用SAP Cloud Platform Leonardo机器学习提取图片的特征向量
  3. 如何在Marketing Cloud里创建extension field扩展字段
  4. unicode转中文的工具
  5. 如何自己找出SMBDA服务使用的端口号
  6. Application log debug - storage
  7. BusinessPartner Relationship in WebUI and Fiori
  8. Use BAdI - call_workitem_exit workflow
  9. 使用ST03N查看指定user的transaction 性能数据
  10. 走进rxjs的世界 - 万物皆流 - Everything is a stream