我有一张表存储来自用户的输入,因此为了允许国家字符,我将 charset 设置为utf8mb4。
然后我有第二个表,它可以变得非常大(100+ 数百万行),并且我 100% 确定该表将仅存储 ASCII 字符,因此我已将此表的字符集设置为latin1以节省磁盘空间。
在一个数据库中的表之间使用不同的字符集有什么缺点吗?这被认为是不好的做法吗?
或者有没有其他方法可以解决这个问题?(保持磁盘占用最小并允许使用国家字符)
编辑:
其输出show create table接受用户输入(并具有 utf8mb4)
CREATE TABLE `sensor` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`label` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`description` varchar(3000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`created` datetime(6) NOT NULL,
`state` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`region` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`model_reference` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `label` (`label`),
KEY `id` (`id`),
KEY `sensor_ibfk_1` (`model_reference`),
FULLTEXT KEY `fulltext_index`(`label`,`description`,`state`,`region`),
CONSTRAINT …Run Code Online (Sandbox Code Playgroud)