当行大小太大时如何转换MYSQL UTF-8?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当行大小太大时如何转换MYSQL UTF-8?相关的知识,希望对你有一定的参考价值。

我在mysql数据库上试图将我在latin1中编码的表改为UTF-8。表名是Journalist,有12列列为varchar,最大长度为3000.这是我正在运行的sql。

ALTER TABLE `journalist` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

我收到的错误

行大小太大。使用的表类型(不计算BLOB)的最大行大小为65535.这包括存储开销,请查看手册。您必须将某些列更改为TEXT或BLOB

在运行此转换查询之前,是否必须更改表的大小?和/或我怎么可能完成这种编码改变呢?

答案

我做了@Wrikken建议的。我删除了我的表,并将varchar的max_length属性从3000降低到1500.然后我在新的空表上运行了这个SQL

ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

从这里开始,我用备份表重新填充它,使用脚本。

要回答这个问题:降低varchar max_length限制或将varchar字段更改为LONGTEXT或BLOBS

以上是关于当行大小太大时如何转换MYSQL UTF-8?的主要内容,如果未能解决你的问题,请参考以下文章

大小太大时 VBO + glBufferData 崩溃

MYSQL数据太大时怎么优化 视图?存储过程? - 技术问答

Xcode 在条形按钮项目大小太大时使用 PDF 图像

Pollard Rho 在输入不太大时崩溃

当整个文件太大时如何在python中使用mmap

PFFile 太大时应用程序崩溃