小编use*_*087的帖子

具有两个不同字符集的两个表

我有一张表存储来自用户的输入,因此为了允许国家字符,我将 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)

mysql encoding

5
推荐指数
1
解决办法
1467
查看次数

标签 统计

encoding ×1

mysql ×1