Aks*_*hta 1 mysql database collation character-encoding character-set
通过上述更改,我们可以将表情符号保存在我们的列中。
问题: 1)我是否需要删除现有索引(varchar 列)并重新创建索引,如之前使用 utf8 每个字符占用 3 个字节,现在使用 utf8mb4 编码它将占用 4 个字节?
索引是指向表行的指针的有序列表。排序基于索引的列CHARACTER SET和列。COLLATION如果更改其中任何一个,则必须重建索引。“指针”(在此上下文中)是PRIMARY KEY.
您应该执行以下其中一项或另一项操作
ALTER TABLE tbl CONVERT TO CHARACTER SET utf8mb4 COLLATE ...,;
Run Code Online (Sandbox Code Playgroud)
它会转换表中的所有文本列。或者,如果您需要保留一些当前的字符集/排序规则,则更改每一列:
ALTER TABLE tbl MODIFY col_name ... CHARACTER SET utf8mb4 COLLATE ...;
Run Code Online (Sandbox Code Playgroud)
其中第一个“...”是列定义的其余部分(VARCHAR、NOT NULL,等等)。
任何涉及正在更改的列的索引都将被重建。特别要注意的是,aVARCHAR PRIMARY KEY在每个二级索引中都是有效的。
校对utf8mb4_unicode_ci相当旧;你可能更喜欢utf8mb4_unicode_520_ci,特别是因为它将表情符号处理为不同的而不是混在一起(IIRC)。
utf8 是 utf8mb4 的子集这一事实并不相关;MySQL 将其视为一种改变,并没有采取任何捷径。
| 归档时间: |
|
| 查看次数: |
1514 次 |
| 最近记录: |