VARCHAR(256) vs VARCHAR(255)
1.创建表的时候把一个字段设置成varchar(256)并设置成key。
数据库是mysql,表类型是innodb。
然后就报错了
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes
查了下才知道,
"internal maximum key length for InnoDB indexes is 3500 byte, and limited by MySQL to 1024 bytes. In real-life it is limited to 767"
mysql认为utf8每个字符最长3个字节。如果是varchar(255)的话,3 * 255=765<767,如果是varchar(256),就完蛋了。
@Cobble HF.AH.CHN 2013-07-22
资料1.http://blog.sunchangming.com/post/47343871830
分享到:
相关推荐
### VARCHAR与VARCHAR2之间的联系和区别 在数据库设计与应用中,正确理解并选择合适的数据类型对于确保数据的准确存储及高效查询至关重要。在Oracle数据库中,`VARCHAR`与`VARCHAR2`是两种常见的用于存储可变长度...
今天我们将深入探讨三种常见的字符串类型:`char`、`varchar`和`varchar2`,它们在不同的数据库系统中有着微妙的区别。 1. **char类型** `char`是一种固定长度的字符串类型,无论实际存储的数据是否填满指定长度,...
### Oracle中的VARCHAR2(BYTE)与VARCHAR2(CHAR)区别详解 #### 一、引言 在Oracle数据库中,`VARCHAR2`是最常用的字符数据类型之一,用于存储变长的字符串。然而,在定义`VARCHAR2`类型时,可以选择指定长度为`BYTE`...
在MySQL中,`VARCHAR`是一种用于存储可变长度字符串的数据类型,它的长度设置是非常关键的,因为它直接影响到存储空间的使用效率和数据的正确性。`VARCHAR`的长度设置方法是通过在类型名后面括号内指定最大字符数,...
例如,如果使用`latin1`字符集,一个字符占1字节,`VARCHAR(255)`存储单个字符时,总共使用2字节(1字节用于存储长度,1字节用于存储字符),而`VARCHAR(256)`则需要3字节(2字节表示长度,1字节表示字符)。...
### Oracle CHAR, VARCHAR, VARCHAR2 的区别与使用方法 在 Oracle 数据库中,字符串类型是极为常见的数据类型之一,主要用于存储文本数据。其中最常用的三种类型包括:`CHAR`, `VARCHAR`, 和 `VARCHAR2`。这三种...
本文主要讨论了int、char和varchar这三种常见数据类型在性能上的差异。通常,这些差异在无索引和有索引的情况下的表现会有所不同。 首先,从无索引的全表扫描角度来看,测试结果显示int和bigint(即i8)在查询性能...
标题中的“python遇到sql2005 varchar(4000) varchar(MAX)”指的是在使用Python编程语言操作SQL Server 2005数据库时,可能会遇到处理两种不同大小的变长字符串类型——varchar(4000)和varchar(MAX)的问题。...
Oracle 中 char 和 varchar2 的区别 Oracle 中 char 和 varchar2 是两种常用的字符串数据类型,它们之间的区别是很多开发者经常忽视的。下面我们将详细分析 Oracle 中 char 和 varchar2 的区别。 首先,char 是定...
在测试中,`CHAR(255)`类型的插入速度比`VARCHAR(255)`慢约20秒,同时`CHAR`类型的数据文件大小远大于`VARCHAR`。 查询性能方面,当数据内容一致时,`VARCHAR`类型的查询速度明显优于`CHAR`。这是因为`VARCHAR`不...
Oracle SQL 函数进行BLOB转换Varchar2
对于“hello world”这样的字符串,VARCHAR(255)会先计算字符串长度(这里是11),再加上一个或两个字节来记录长度,总共使用12个字节。这种灵活的存储方式在处理长度不定的字符串时能节省大量空间,但更新数据可能...
Range分区:最为常用,基于属于一个给定连续区间的列值,把多行分配给分区。最常见的是基于时间字段. 基于分区的列最好是整型,如果日期型的可以使用函数转换为整型。varchar日期字段分区sql demo
在 Oracle 中,数据类型的转换是非常常见的操作,本文将详细介绍 Oracle 中的 varchar 和 date 的转换、number 和 varchar 的转换。 一、varchar 和 date 的转换 在 Oracle 中,varchar 类型用于存储字符串数据,...
`GregorianDateTime` varchar(255) DEFAULT NULL COMMENT '公历日期时间', `LunarDateTime` varchar(255) DEFAULT NULL COMMENT '农历日期时间', `LunarShow` varchar(255) DEFAULT NULL, `IsJieJia` varchar...
`ID` varchar(255) DEFAULT NULL, `Name` varchar(255) DEFAULT NULL, `ParentId` varchar(255) DEFAULT NULL, `ShortName` varchar(255) DEFAULT NULL, `LevelType` varchar(255) DEFAULT NULL, `City...
在MySQL中,`VARCHAR`类型用于存储可变长度的字符串,它相较于`CHAR`类型更加节省空间,因为它只存储实际输入的数据长度。然而,在数据库设计过程中,有时可能会遇到需要动态修改`VARCHAR`字段长度的情况,这通常是...
对于长度小于255的VARCHAR,只需要1字节表示长度;大于255的需要2字节。这意味着实际内容的最大长度是65535 - 2 = 65533字节。 2. **编码长度限制**:VARCHAR的长度还受到字符编码的约束。例如,GBK编码中每个字符...