text,varchar,char在存贮长度方面个人的理解_MySQL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了text,varchar,char在存贮长度方面个人的理解_MySQL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2238字,纯文字阅读大概需要4分钟。
内容图文
![text,varchar,char在存贮长度方面个人的理解_MySQL](/upload/InfoBanner/zyjiaocheng/581/a4f3655b70a048e4971cd62eb6fc0e37.jpg)
在utf8 的格式情况下的总结
﹙1﹚ 在mysql提供的官方文档中描述如下
1﹚ 在mysql5.1参考手册中如下描述
TEXT[(M)]
最大长度为65,535(216–1)字符的TEXT列。
可以给出可选长度M。则MySQL将列创建为最小的但足以容纳M字符长的值的TEXT类型。
[NATIONAL] VARCHAR(M) [BINARY]
变长字符串。M 表示最大列长度。M的范围是0到65,535。(VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定。最大有效长度是65,532字节)。
[NATIONAL] CHAR(M) [BINARY| ASCII | UNICODE]
固定长度字符串,当保存时在右侧填充空格以达到指定的长度。M表示列长度。M的范围是0到255个字符
﹙2﹚ 对字符和字节的关系做个介绍
1﹚ 字符是指计算机中使用的字母、数字、字和符号
2﹚ 在 ASCII 编码中,一个英文字母字符存储需要1个字节
3﹚ 在 GB 2312 编码或 GBK 编码中,一个汉字字符存储需要2个字节
4﹚ 在UTF-8编码中,一个英文字母字符存储需要1个字节,一个汉字字符储存需要3到4个字节(在我的计算机环境上是一个汉字存贮需要3个字节)
5﹚ 在UTF-16编码中,一个英文字母字符或一个汉字字符存储都需要2个字节(Unicode扩展区的一些汉字存储需要4个字节)
6﹚ 在UTF-32编码中,世界上任何字符的存储都需要4个字节
7﹚ 我们现在数据库编码使用的是utf-8编码格式,所以一个字符占有3个字节
﹙3﹚ 但是通过实验我们得出了和上面手册文档中不同的值(在utf8编码下)
1﹚ Text类型最多可以存贮65535个字节,而非65535个字符,就是存贮英文等字符的时候是可以存贮65535个字符,存贮纯汉字最多可以存贮21485个汉字
2﹚ Varchar类型可以设置的最大值为21491,存贮形式为字符,varchar(21491)最多可以存贮21491个英文字符,也可以存贮最多为21491个汉字
3﹚ Char类型最大可设的值为255个字符,char(255)最多可以存贮255个英文字符,最多也可以存贮255个汉字,char(M)当你使用char了之后就该字段不管有多少值占用的空间都是M个字符
4﹚ 检索效率char>varchar>text
﹙4﹚ 通过以上的讨论,我们的数据库设计可以设计一个原则
1﹚ 当数据库存贮的是html或者一些文章性的不需要检索的使用text,存贮量大,也比较少的需要检索.存贮的性能上来说是最佳的.,可以少占空间多存内容
2﹚ 当一些字符比较少而且需要比较高的检索效率我们首先考虑char,比如字典表的类型可以使用char类型,这样对字典表的读取效率会有比较大的提高
3﹚ 除了以上这些特殊的,其他建议都采用varchar,但是对于不同的字段要定不同的长度,比如:标题用varchar(200)不管是英文还是汉语作为标题应该都是比较够了
4﹚ 对于一些个人简介以及名医简介等类似的一些东西来说是需要不同的需求分配不同的长度.所以我们类型用varchar.长度按照需求定义
内容总结
以上是互联网集市为您收集整理的text,varchar,char在存贮长度方面个人的理解_MySQL全部内容,希望文章能够帮你解决text,varchar,char在存贮长度方面个人的理解_MySQL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。