对于这种格式的表,在MySQL中:
CREATE TABLE IF NOT EXISTS `test` (
`field1` char(32) NOT NULL,
`field2` smallint(5) unsigned NOT NULL,
`field3` smallint(5) unsigned NOT NULL,
`field4` datetime NOT NULL,
`field5` enum('opt1','opt2','opt3','opt4','opt5') NOT NULL,
`field6` enum('opt1','opt2','opt3','opt4','opt5','opt6') NOT NULL,
PRIMARY KEY (`field1`),
KEY `field5` (`field5`),
KEY `field2` (`field2`),
KEY `field4` (`field4`),
KEY `field6` (`field6`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;我预计这一行的长度是46。
H 1101用于enumH 211H 1121用于enumH 213f 214
但是,每次我尝试时,行长度都是111。我找不到任何解释这是为什么。我做错了什么吗?
发布于 2011-06-10 22:07:36
字符为char(32)的UTF8字段将使用每个字符最多3个字节。
发布于 2011-06-10 22:10:18
在mysql中,utf8字符的大小为3或4个字节。
发布于 2011-06-10 22:15:47
你没有做错什么事。这是正常的。
https://stackoverflow.com/questions/6312212
复制相似问题