在一个字段只有5-10个不同的可能值的情况下,使用enum是否有性能优势?如果没有,优势是什么?

推荐答案

在以下操作中,使用penaltyENUM之间有巨大的性能差异:

  • 查询ENUM中的允许值列表,例如填充下拉菜单.您必须从INFORMATION_SCHEMA查询数据类型,并从返回的BLOB字段中解析列表.

  • 更改允许的值集.它需要一个ALTER TABLE语句,该语句锁定表,并可能进行重组.

我不喜欢MySQL的ENUM.我更喜欢使用查找表.另见我对"How to handle enumerations without enum fields in a database?"的回答

Mysql相关问答推荐

过程/别名是有点长的MySQL命令的一部分吗?

MySQL查询获取图书的唯一读取页面数

将类图转换为SQL数据库

Golang中使用Gorm的Where条件转义字符无法正常工作的问题

特定时间段内每个客户的运行总计

实体内约束的唯一增量 ID 生成

仅计算 DATEDIFF (MySQL) 中的工作日

MySql部分匹配基于部分查询代码

MYSQL:如何根据之前的相关记录获取记录

Golang Gorm没有从关联表中检索数据

具有别名主机的 ssh 反向 mysql tunel

MySql,将日期和时间列组合成时间戳

终止空闲的mysql连接

MySQL Group By 和 Sum 其他列的总值

MySQL使用多列 Select 重复记录

在 WHERE 子句中使用 CASE

将 MySQL 查询的输出转换为 utf8

utf8mb4_unicode_ci 与 utf8mb4_bin

在 MySQL 中的子查询上使用 GROUP_CONCAT

如何从命令行调用带有参数的mysql存储过程?