首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQLchar、varchartext的区别

数据的检索效率是:char > varchar > text 空间占用方面,就要具体情况具体分析了。...text列不能有默认值,存储或检索过程,不存在大小写转换,后面如果指定长度,不会报错误,但是这个长度是不起作用的,意思就是你插入数据的时候,超过你指定的长度还是可以正常插入。...结论: 经常变化的字段用varchar; 知道固定长度的用char; 尽量用varchar; 超过255字节的只能用varchar或者text; 能用varchar的地方不用...text; 能够用数字类型的字段尽量选择数字类型而不用字符串类型的(电话号码),这会降低查询连接的性能,并会增加存储开销。...这是因为引擎在处理查询连接回逐个比较字符串每一个字符,而对于数字型而言只需要比较一次就够了。 本文参考:http://www.jianshu.com/p/cc2d99559532

1.9K10

MySQLchar、varchartext的设计

首先普及几个常识: 1、char(n)varchar(n)括号n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。...5、char在存储的时候会截断尾部的空格,varchartext不会。 6、varchar会使用1-3个字节来存储长度,text不会。 下图可以非常明显的看到结果: ?...首先从空间方面: 从官方文档我们可以得知当varchar大于某些数值的时候,其会自动转换为text,大概规则如下: 大于varchar(255)变为 tinytext 大于varchar(500)变为...text 大于varchar(20000)变为 mediumtext 所以对于过大的内容使用varchartext没有太多区别。...从索引上看其实long varchartext也没有太多区别。 所以我们认为当超过255的长度之后,使用varchartext没有本质区别,只需要考虑一下两个类型的特性即可。

2.1K10
您找到你想要的搜索结果了吗?
是的
没有找到

MySQLchar、varchartext的区别

数据的检索效率是:char > varchar > text 空间占用方面,就要具体情况具体分析了。...另外,varchar类型的实际长度是它的值的实际长度+1,这一个字节用于保存实际使用了多大的长度。 3.text:存储可变长度的非Unicode数据,最大长度为2^31-1个字符。...text列不能有默认值,存储或检索过程,不存在大小写转换,后面如果指定长度,不会报错误,但是这个长度是不起作用的,意思就是你插入数据的时候,超过你指定的长度还是可以正常插入。...---- 结论: 经常变化的字段用varchar; 知道固定长度的用char; 尽量用varchar; 超过255字节的只能用varchar或者text; 能用varchar的地方不用text; 能够用数字类型的字段尽量选择数字类型而不用字符串类型的...这是因为引擎在处理查询连接回逐个比较字符串每一个字符,而对于数字型而言只需要比较一次就够了。 文章来源:http://www.cnblogs.com/xianDan/p/4292706.html

1.3K40

MysqlMysqlchar,varchartext类型的区别选用

text 、 char、varchar 是数据在数据库的存放策略问题,为了,合理 应用存储空间,是数据库服务器数据类型划分的方式。对于应用程序,把它们 string对应就可以了。...当你想要储存一个长度不足255的字符时,MySQL会用空格来填充剩下的字符。因此在读取数据时,char类型的数据要进行处理,把后面的空格去除。...(2)varchar: 关于varchar,有的说最大长度是255,也有的说是65535,查阅很多资料后发现是这样的:varchar类型在5.0.3以下的版本的最大长度限制为255,而在5.0.3及以上的版本...的数据(起始位结束位占去了3个字节),也就是说,在5.0.3以下版本需要使用固定的TEXT或BLOB格式存放的数据可以在高版本中使用可变长的varchar来存放,这样就能有效的减少数据库文件的大小。...(3)text:与charvarchar不同的是,text不可以有默认值,其最大长度是2的16次方-1 总结起来,有几点: 经常变化的字段用varchar 知道固定长度的用char 尽量用varchar

1.8K10

MySQL之char、varchartext的设计

首先我们先普及一下常识: 1、char(n)varchar(n)括号n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。...5、char在存储的时候会截断尾部的空格,varchartext不会。 6、varchar会使用1-3个字节来存储长度,text不会。...首先从空间方面: 从官方文档我们可以得知当varchar大于某些数值的时候,其会自动转换为text,大概规则如下: 大于varchar(255)变为 tinytext 大于varchar(500)...变为 text 大于varchar(20000)变为 mediumtext 所以对于过大的内容使用varchartext没有太多区别。...从索引上看其实long varchartext也没有太多区别。 所以我们认为当超过255的长度之后,使用varchartext没有本质区别,只需要考虑一下两个类型的特性即可。

1.7K20

MySQL之char、varchartext的设计

首先我们先普及一下常识: 1、char(n)varchar(n)括号n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。...5、char在存储的时候会截断尾部的空格,varchartext不会。 6、varchar会使用1-3个字节来存储长度,text不会。...首先从空间方面: 从官方文档我们可以得知当varchar大于某些数值的时候,其会自动转换为text,大概规则如下: 大于varchar(255)变为 tinytext 大于varchar(500)...变为 text 大于varchar(20000)变为 mediumtext 所以对于过大的内容使用varchartext没有太多区别。...从索引上看其实long varchartext也没有太多区别。 所以我们认为当超过255的长度之后,使用varchartext没有本质区别,只需要考虑一下两个类型的特性即可。

3.9K41

(转)MySQL之char、varchartext的设计

首先我们先普及一下常识: 1、char(n)varchar(n)括号n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。...5、char在存储的时候会截断尾部的空格,varchartext不会。 6、varchar会使用1-3个字节来存储长度,text不会。...首先从空间方面: 从官方文档我们可以得知当varchar大于某些数值的时候,其会自动转换为text,大概规则如下: 大于varchar(255)变为 tinytext 大于varchar(500)...变为 text 大于varchar(20000)变为 mediumtext 所以对于过大的内容使用varchartext没有太多区别。...从索引上看其实long varchartext也没有太多区别。 所以我们认为当超过255的长度之后,使用varchartext没有本质区别,只需要考虑一下两个类型的特性即可。

2.1K20

MySQL varchar char 区别

1. varchar char 共同点 ---- varchar char 是 MySQL 的两种数据类型,都是用来存储字符串的。...2. varchar char 区别 ---- 一、长度是否可变 varchar 类型的长度是可变的,而 char 类型的长度是固定的 char 类型是一个定长的字段,以 char(10) 为例,不管真实的存储内容多大或者是占了多少空间...长度最大为 65535 个字符 三、检索效率方面 varchar 类型的查找效率比较低,而 char 类型的查找效率比较高 3. varchar char 的选择 ---- 存储的字符长度是可变化的...,建议使用 varchar 类型,它可以节省存储空间。...使用场景:使用 md5 加密的密码长度固定为 32 位字符 总结: 可变长度使用 varchar,固定长度使用 char

1.6K30

TEXT、TINYTEXT、MEDIUMTEXT、LONGTEXT选择 char varchar varchar2 的区别

TEXT、TINYTEXT、MEDIUMTEXT、LONGTEXT的区别: 储存不区分大小写的字符数据 TINYTEXT 最大长度是 255 (2^8 – 1) 个字符。...TEXT 最大长度是 65535 (2^16 – 1) 个字符。 MEDIUMTEXT 最大长度是 16777215 (2^24 – 1) 个字符。...2.CHAR的效率比VARCHAR2的效率稍高。 3.目前VARCHARVARCHAR2的同义词。...Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库varchar列可以存储空字符串的 特性改为存储NULL值。...VARCHAR2虽然比CHAR节省空间,但是如果一个VARCHAR2列经常被修改,而且每次被修改的数据的长度不同,这会引起‘行迁移’(Row Migration)现象,而这造成多余的I/O,是数据库设计调整要尽力避免的

98110

MySQLCHARVARCHAR类型学习--MySql语法

本文学习的是MySQLCHARVARCHAR类型学习,CHARVARCHAR类型类似,但它们保存检索的方式不同。它们的最大长度是否尾部空格被保留等方面也不同。...在存储或检索过程不进行大小写转换。 CHARVARCHAR类型声明的长度表示你想要保存的最大字符数。例如,CHAR(30)可以占用30个字符。 CHAR列的长度固定为创建表时声明的长度。...在存储或检索过程不进行大小写转换。 VARCHAR的值为可变长字符串。长度可以指定为0到65,535之间的值。(VARCHAR的最大有效长度由最大行大小使用的字符集确定。...列的值进行排序比较。...请注意所有MySQL校对规则属于PADSPACE类。这说明在MySQL的所有CHARVARCHAR值比较时不需要考虑任何尾部空格。

1.3K30

MySQL的CHARVARCHAR类型

CHARVARCHAR类型类似,都用来存储字符串,但他们保存检索的方式不用。CHAR属于固定长度的字符类型,而VARCHAR属于可变长度的字符类型。...表8-1显示了将各种字符串值保存到CHAR(4)VARCHAR(4)列后的结果,说明了CHARVARCHAR之间的差别。 ?...注意表8-1最后一行的值只适合MySQL运行在非“严格模式”时,如果MySQL运行在严格模式,超过列长度的值将不会保存,并且会出现错误提示, 从CHAR(4)VARCHAR(4)列检索的值并不总是相同...另外,随着MySQL版本的不断升级,VARCHAR数据类型的性能也在不断改进并提高,所以在许多的应用VARCHAR类型被更多地使用。...在MySQL,不同的存储引擎对CHARVARCHAR的使用原则有所不同。

2.3K40

MySQL CHAR VARCHAR 的区别

MySQL ,CHAR VARCHAR 是两种不同的文本数据类型,CHAR VARCHAR 类型声明时需要指定一个长度,该长度指示您希望存储的最大字符数。...1.区别 根据 MySQL 的官方文档 The CHAR and VARCHAR Types 的描述, varcharchar的区别主要有: 1.1 存储方式不同 char(N) 定长存储。...(如果是严格模式,则会拒绝插入并提示错误信息) 此外,VARCHAR 在数据前存储为1字节或2字节的长度。长度前缀表示值包含的字节数。...下表通过显示将各种字符串值存储到 CHAR(4) VARCHAR(4) 列的结果来说明 CHAR VARCHAR 之间的区别(假设该列使用单字节字符集,如 latin1)。...参考文献 11.3.2 The CHAR and VARCHAR Types - mysql.com Section 5.1.11 Server SQL Modes MySQLchar与varchar

37040

MySQLBLOBTEXT类型学习--MySql语法

TEXT或BLOB列的存储或检索过程,不存在大小写转换。 当未运行在严格模式时,如果你为BLOB或TEXT列分配一个超过该列类型的最大长度的值值,值被截取以保证适合。...同样,可以将TEXT列视为VARCHAR列。BLOBTEXT在以下几个方面不同于VARBINARYVARCHAR: · 当保存或检索BLOBTEXT列的值时不删除尾部空格。...(这与VARBINARYVARCHAR列相同)。 请注意比较时将用空格对TEXT进行扩充以适合比较的对象,正如CHARVARCHAR。...· 对于BLOBTEXT列的索引,必须指定索引前缀的长度。对于CHARVARCHAR,前缀长度是可选的。 · BLOBTEXT列不能有 默认值。...例如,可以使用 mysqlmysqldump来更改客户端的max_allowed_packet值。 每个BLOB或TEXT值分别由内部分配的对象表示。

2.6K10

数据类型(int char varchar datetime text)的意思;请问 varchar char有什么区别?

Int    整数 char    定长字符 varchar    变长字符 datetime    日期时间型 text    文本型 varchar与char的区别: 1、char是固定长度的字符类型...对于经常变更的数据,CHAR也比VARCHAR更好,因为定长的CHAR类型不容易产生碎片。对于非常短的列,CHAR比VARCHAR在存储空间上也更有效率。...例如用CHAR(1)来存储只有YN的值,如果采用单字节字符集只需要一个字节,但是VARCHAR(1)却需要两个字节,因为还有一个记录长度的额外字节。...特别是对于VARCHAR字段,有人认为反正VARCHAR数据类型是根据实际的需要来分配长度的,还不如给大一点呢。...更长的列会消耗更多的内存,因为MySQL通常会分配固定大小的内存块来保存内部值,尤其是使用内存临时表进行排列或者操作时会特别糟糕。所以我们在分配VARCHAR数据类型时仍然不能够太过于慷慨。

2.1K10
领券