首先,我想向您保证,我已经完成了我的“功课”并且已经阅读了这个、这个、这个和这个。另外,我以前的一个问题与这个问题密切相关,但在那个问题中,我正在处理繁荣库与 utf8mb4 的兼容性问题。这个问题涉及更深层次的问题。假设我有几张表,我只想修改几列以使用 utf8mb4 编码,以在更改后保留一些存储空间和性能。如果我将整个数据库更改为 utf8mb4 编码,那么它的大小将增加 33%,这也会严重影响其性能。因此,我们从三个不同的表格中选择了四列来支持表情符号。这些是:
users.bio
(小文本,utf8_general_ci)questions.question
(长文本,utf8_general_ci)questions.answer
(长文本,ut8_general_ci)comments.comment
(小文本,utf8_general_ci)
因此,我的行动计划如下:
创建数据库的备份
运行这些命令:
alter table comments change comment comment tinytext character set utf8mb4 collate utf8mb4_unicode_ci;
alter table users change bio bio tinytext character set utf8mb4 collate utf8mb4_unicode_ci;
alter table questions change question question longtext character set utf8mb4 collate utf8mb4_unicode_ci;
alter table questions change answer answer longtext character set utf8mb4 collate utf8mb4_unicode_ci;
期望:
- 这应该使指定的列使用 utf8mb4 而不是 utf8
- 现有数据将正确转换为utf8mb4,即保留以前的文本,用户将能够正确阅读其内容
- 其他列不会改变
- 涉及受影响表的查询会变慢
我的预期准确吗?我需要更改连接吗?谢谢