我有一个表,其中一列是一种 id 字符串,用于对表中的几行进行分组。假设列名称是“map”,并且 map 的值之一是例如“沃尔玛”。该列上有一个索引,因为我用它来过滤属于某个 map 的那些行。
我有很多这样的 map ,但我不知道不同的 map 值从表格中占用了多少空间。 MYSQL 是否识别为多行存储相同的映射值并仅在内部存储一次并且仅使用内部数字 ID 引用它?
或者,如果我想减小表的大小,是否必须用数字 ID 显式替换映射字符串并使用不同的表将映射字符串与 ID 配对?
最佳答案
MySQL 将存储每一行的全部数据,无论数据是否已经存在于不同的行中。
如果您的选项集有限,您可以使用 ENUM 字段,否则您可以将名称拉入另一个表并加入它。
关于mysql - 如果相同的字符串存储在多行中,MYSQL 是否以最佳方式存储它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1254383/