varchar(256)

今天一个同事创建表的时候把一个字段设置成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),就完蛋了。

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥