文档章节

MySQL性能优化之char、varchar、text的区别

hansonwong
 hansonwong
发布于 11/19 22:54
字数 388
阅读 10
收藏 1

在存储字符串时, 可以使用char、varchar或者text类型, 那么具体使用场景呢?

        参考下面这个表结构:

1、 char长度固定, 即每条数据占用等长字节空间;适合用在身份证号码、手机号码等定。

2、 varchar可变长度,可以设置最大长度;适合用在长度可变的属性。

3、 text不设置长度, 当不知道属性的最大长度时,适合用text。


按照查询速度: char最快, varchar次之,text最慢。


char:char(n)中的n表示字符数,最大长度是255个字符; 如果是utf8编码方式, 那么char类型占255 * 3个字节。(utf8下一个字符占用1至3个字节)


varchar:varchar(n)中的n表示字符数,最大空间是65535个字节, 存放字符数量跟字符集有关系;

PS:varchar实际范围是65532或65533, 因为内容头部会占用1或2个字节保存该字符串的长度;如果字段default null(即默认值为空),整条记录还需要1个字节保存默认值null。

       如果是utf8编码, 那么varchar最多存65532/3 = 21844个字符。
 

本文转载自:https://dev.mysql.com/doc/refman/8.0/en/string-type-overview.html

共有 人打赏支持
hansonwong
粉丝 4
博文 113
码字总数 13208
作品 0
广州
私信 提问
三:MySQL中的数据类型 - 系统的撸一遍MySQL

MySQL中但数据类型主要分为 数值类型、字符串类型、日期时间类型,随着MySQL版本升级,往往会对一些数据类型进行优化。 数值类型 整型 数据类型 字节 有符号 无符号 TINYINT 1 -128 ~ 127 0...

logbird
2016/08/17
58
0
MySql中的varchar类型

MySql中的varchar类型(转) 今天新开始的项目在做数据库设计,发现自己对MySql的varchar类型还不熟悉,故又上网收集资料整理如下。 1.varchar类型的变化 MySQL 数据库的varchar类型在4.1以下...

馨缘6009
2013/12/12
0
0
跟王老师学MySQL:MySQL数据类型之字符类型

跟王老师学MySQL:MySQL数据类型之字符类型 主讲教师:王少华 QQ群号:483773664 学习内容: 字符串类型的种类及其特点 char和varchar的异同 字符串类型是在数据库中存储字符串的数据类型。 ...

imentors
2016/07/04
0
0
MySQL管理与优化(6):选择合适的数据类型

选择合适的数据类型 CHAR与VARCHAR 存储字符串,保存和检索方式不同,CHAR固定长度,VARCHAR可变长度。 对比图: 严格模式下,若实际值超出字段定义长度,将会抛出错误。 范例: -- 建表mys...

ihaolin
2014/06/16
0
0
MySQL中char、varchar和text的区别

它们的存储方式和数据的检索方式都不一样。 数据的检索效率是:char > varchar > text 空间占用方面,就要具体情况具体分析了。 char:存储定长数据很方便,CHAR字段上的索引效率级高,必须在...

为了美好的明天
2017/10/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

编程价值观、原则、模式

读自《实现模式》 模式,即是针对特定问题的通用解决方案。 每个模式都承载这一点点理论,但实际编程中存在着一些更加深远的影响力,远不是孤立的模式所能概括的。 价值观是编程过程的统一支...

遥借东风
1分钟前
0
0
php分割二级域名做跳转处理方法

使用php中的全局变量 $_SERVER['HTTP_HOST'] ,可以获得用户当前访问的域名字符串,在这里面查询自己定义的各个子域名字符串,然后使用header函数重定向到不同的页面 代码如下 if( strpos($...

Mr_Azaz
3分钟前
0
0
容器之Zookeeper的使用

我们使用zookeeper时,都是在Linux上安装zookeeper,之后启动时要加入配置文件。 使用docker之后,我们可以直接使用镜像运行容器,镜像可以从docker.hub上下载,地址是https://hub.docker.co...

克虏伯
昨天
1
0
esxi 更换ssl证书

概述 就是想换一个证书而已,你可以通过下面的途径去申请一个泛解析域名的证书之后再esxi上安装上 使用阿里云域名api申请Let’s Encrypt泛域名免费ssl证书 申请完成证书之后进行下一步 操作 ...

bboysoulcn
昨天
1
0
PLC编程入门:梯形图

梯形图(LAD)是PLC编程的最佳可视化语言,它看起来非常类似于继电器电路图,因此如果 你对继电器控制和电子电路有所了解的话,那么学起来会非常容易! 在这个教程中,我们将学习关于使用梯形...

汇智网教程
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部