数据库中varchar和char的比较

php中文网
发布: 2016-06-07 16:03:26
原创
1510人浏览过

部分信息转自别处..... 一.数据存储开销 1.char(n) 是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值。当你输入的字符大于指定的数时,它会截取超出的字符。 在程序中,会返回给你8位,后面的用空格补上

部分信息转自别处.....

一.数据存储开销

1.char(n) 是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值。当你输入的字符大于指定的数时,它会截取超出的字符。

在程序中,会返回给你8位,后面的用空格补上;

在数据库中,char(8),占用16个字节(1个字符=2个字节);

2.varchar(n) 是长度为 n 个字节的可变长度且非 Unicode 的字符数据。n必须是一个介于1和 8000之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。

二.插入数据

1.char列的NULL值占用存储空间。

2. varchar列的NULL值不占用存储空间。

插入同样数量的NULL值,varchar列的插入效率明显高出char列。

插入不为null的数据时,无论插入数据涉及的列是否建立索引,varchar列的插入效率也是明显高出char列。

三.更新数据

万客隆企业建站
万客隆企业建站

全站生成html留言本采用ajax程序应该说还是比较短小精悍的不到1M另外还支持分栏目关键字和描述系统支持无限级分类生成静态HTML、ajax 、数据库内容替换、自定义标签后台用户名admin密码000123

万客隆企业建站 0
查看详情 万客隆企业建站

如果更新的列上未建立索引,则char的效率低于varchar,但效率差异不大。

如果更新的列上建立索引,则char的效率低于varchar,并且效率差异很大。

四.修改结构

无论增加或删除的列的类型是char还是varchar,操作都能较快的完成,而且效率上没有什么差异。

对于增加列的宽度而言,char与varchar有非常明显的效率差异,varchar列基本上不花费时间,而修改char列需要花费很长的时间。

五.数据检索

无论是否通过索引,varchar类型的数据检索略优于char的扫描。

那实际开发中,我们使用哪种呢?

当确定字符串为定长、数据变更频繁、数据检索需求少时,使用char;

当不确定字符串长度、对数据的变更少、查询频繁时,使用varchar。

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号