http://www.cnblogs.com/kxdblog/p/4042331.html

https://wenku.baidu.com/view/97524e0f844769eae009ed80.html

http://blog.csdn.net/lwei_998/article/details/7728173

char是定长的,varchar是变长的。varchar2应该是varchar的升级,似乎只有ORACLE才有,这里不作讨论。

char定长存储,速度快,但是存在一定的空间浪费,适用于字段不是很大,对速度要求高的场合。速度快是因为其在物理上是按定长存储的,这样,就可以根据偏移址一次取出固定长度的字符。

varchar变长存储,所以效率不如char。varchar在存储时,在物理上要先存储该字段的实际长度,然后才是内容。这样读取的时候,就要读取两次,一次读它的长度,然后才是内容。所以它的访问速度会比char慢一些。但它可以节省空间。

由于mysql自身的特点,如果一个数据表存在varchar字段,则表中的char字段将自动转为varchar字段。在这种情况下设置的char是没有意义的。所以要想利用char的高效率,要保证该表中不存在varchar字段;否则,应该设为varchar字段。

char

是定长的,

varchar

是变长的。

varchar2

应该是

varchar

的升级,似乎只

ORACLE

才有,这里不作讨论。

char

定长存储,速度快,但是存在一定的空间浪费,适用于字段不是很大,对

速度要求高的场合。

速度快是因为其在物理上是按定长存储的,

这样,

就可以根

据偏移址一次取出固定长度的字符。

varchar

变长存储,所以效率不如

char

varchar

在存储时,在物理上要先存储

该字段的实际长度,然后才是内容。这样读取的时候,就要读取两次,一次读它

的长度,然后才是内容。所以它的访问速度会比

char

慢一些。但它可以节省空

间。

由于

mysql

自身的特点,如果一个数据表存在

varchar

字段,则表中的

char

段将自动转为

varchar

字段。在这种情况下设置的

char

是没有意义的。所以要

想利用

char

的高效率,要保证该表中不存在

varchar

字段;否则,应该设为

varchar

字段。

最新文章

  1. mysql coalesce函数
  2. MSMQ消息队列 用法
  3. 用R实现全排列的分类
  4. 编码UTF-8
  5. mysql将一张表中多条记录按联系整合成一条
  6. SHAREPOINT - CAML列表查询
  7. 【转】APP被苹果App Store拒绝的N个原因(持续补充)
  8. Java中Json用法
  9. Jdbc工具类(连接及释放)
  10. JavaScript 克隆对象
  11. git push的用法
  12. nginx连接数优化
  13. Dynamics 365中的常用Associate和Disassociate消息汇总
  14. User authentication in Django(用户认证)
  15. datatables 配套bootstrap3样式使用小结(1)
  16. [模板][P4238]多项式求逆
  17. 无法加载协定为“ServiceReference1.xxxxxx”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分。
  18. CentOS7部署Django项目
  19. Sparrow.Chart.Wpf控件的动态调用
  20. 关于go语言的环境配置 SDK+path+工作目录

热门文章

  1. 使用hint优化Oracle的运行计划 以及 SQL Tune Advisor的使用
  2. LCA树链剖分
  3. mybatis的批量更新实例
  4. Dubbo -- 系统学习 笔记 -- 快速启动
  5. MATLAB——读取xls文件内容
  6. Vue2 第一天学习
  7. PAT A1028 List Sorting (25 分)——排序,字符串输出用printf
  8. struts2中ajax的使用
  9. [05] 动态SQL
  10. docker load导入镜像报错:open /var/lib/docker/tmp/docker-import-970689518/bin/json: no such file or directory