失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > mysql中char varchar nvarchar数据类型的用法区别

mysql中char varchar nvarchar数据类型的用法区别

时间:2021-08-08 13:55:09

相关推荐

mysql中char varchar nvarchar数据类型的用法区别

数据库|mysql教程

nbsp,quot,record,len,col

数据库-mysql教程

学校综合管理系统源码,vscode调试路径更改,ubuntu 小飞机,tomcat 监听工具,sqlite数据库如何删除,什么爬虫软件可以下载文件,php 统计数据,济南seo推广推荐公司,flashxml音乐网站源码,互联网服务机构织梦模板(带wap)lzw

mysql中char、varchar、nvarchar数据类型的用法区别 有需要的朋友可

仿4399网站源码,vscode终端无法输出,ubuntu 系统裁剪,降低tomcat运行权限,爬虫蠕虫,破解post.php,广州seo项目推广费用,mysql网站整站,织梦支付模板lzw

java项目源码,vscode设置背景色护眼,ubuntu 实用配置,tomcat水平集群详解,爬虫工具 文档,php微信分销系统源码,seo基础入门教程免费推广lzw

说明:

1、char:

固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。

2、varchar:

可变长度的非 Unicode 数据,最长为 8,000 个字符。

3、nvarchar:

可变长度 Unicode 数据,其最大长度为 4,000 字符。

4、nchar

固定长度的 Unicode 数据,最大长度为 4,000 个字符。

5、char和varchar都是字符串类型的

用Unicode编码的字符串,结果是字符的整数值

如有以下数据结构:

工号 姓名 部门

———————–

1 张三 财务

2 李四 人事

3 王五 销售

……..

我们定义”姓名”为char(10)(静态)的时简单地用php代码表示:

简单地模拟底层数据存储链表$data

//表示每笔记录的总长度,包括3个分隔符

实现如下:

———–

实现如下:

文中直接使用”substr_replace”,而在数据量很大的时候,底层实现上的开销也是不小的,在mysql中表现为(Row Migration)现象,在此不作赘述

根据以上的粗略实现证明:

1、varchar类型在更新环节上的系统开销是远大于char类型的。

2、两者间查找搜索性能上是不相上下的。

3、两者间的存储数据量($data)环节上,char要显示大于varchar。

4、大数据量提取时varchar的磁盘IO消耗更低,意味着varchar综合查询性能会更好。

5、没有了。

实际应用中的结论(如在mysql中):

1、char适合字段频繁更新时的应用。

2、varchar更节省磁盘空间。

3、实际应用中大数据量(多行)查询返回,varchar的查询性能比起char来要好出不少。

4、选择char和varchar会改变整体数据结构的算法以及存储方式。在mysql应用中,如已存在varchar字段,那么其它所有的char字段将以varchar方式存储。

5、没有了。

(以上算法仅以PHP简单描述,欢迎更好的思路加以指教)

注:此文原作者的写作时间比较久远了,所以有些地方和现在的有些出入,体现在:

1.在innodb引擎中,char和varchar的实现已无异,效率上并没多大区别。

2.选择char和varchar并不会改变整体数据结构的算法以及存储方式。(我记得这是在MYSQL4里的特性,网上的老文章有讲述,到了MYSQL5实测已无此特性)

总结分析:

文字字段若长度固定,如:身分证号码,就不要用 varchar 或 nvarchar,应该用 char 或 nchar。

支持多语言的站点应考虑使用 Unicode nchar 或 nvarchar 数据类型以尽量减少字符转换问题

文字字段若长度不固定,如:地址,则该用 varchar 或 nvarchar。除了可节省存储空间外,存取硬盘时也会较有效率

如果觉得《mysql中char varchar nvarchar数据类型的用法区别》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。