mysql - 如果相同的字符串存储在多行中,MYSQL 是否以最佳方式存储它?

标签 mysql database storage

我有一个表,其中一列是一种 id 字符串,用于对表中的几行进行分组。假设列名称是“map”,并且 map 的值之一是例如“沃尔玛”。该列上有一个索引,因为我用它来过滤属于某个 map 的那些行。

我有很多这样的 map ,但我不知道不同的 map 值从表格中占用了多少空间。 MYSQL 是否识别为多行存储相同的映射值并仅在内部存储一次并且仅使用内部数字 ID 引用它?

或者,如果我想减小表的大小,是否必须用数字 ID 显式替换映射字符串并使用不同的表将映射字符串与 ID 配对?

最佳答案

MySQL 将存储每一行​​的全部数据,无论数据是否已经存在于不同的行中。

如果您的选项集有限,您可以使用 ENUM 字段,否则您可以将名称拉入另一个表并加入它。

关于mysql - 如果相同的字符串存储在多行中,MYSQL 是否以最佳方式存储它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1254383/

相关文章:

java - 从 mySQL 数据库中检索并显示多个 BLOB 图像

java - 使用 hibernate 从数据库中删除重复行

dataset - bigquery 数据位置传输

mysql - 在 mysql 中声明是否给出语法错误?

php - 使用 PHP 从数据库获取图像

php - bindParam 与 md5() 列 PDO PHP

java - 无法通过反射 getter 和查询来获取字段值以在纯 Hibernate 中对多个列求和

android - 为什么我的 Cursor 在 Android Activity 中没有关闭?

MySQL "binary"与 "char character set binary"

java - 千分尺在哪里存储数据?