我注意到像Postgres这样的一些数据库会添加Enum
,但问题是,
integer/string based enum
何时成为性能问题?以下有关差异的答案Postgresql enum what are the advantages and disadvantages?
因为当你使用Rails或者在这种情况下来自Elixir语言的Ecto
时,有一个抽象级别,所以那里列出的两个优点中的一个完全没有问题所以只有{{1}关心。
因此,当这种优势非常重要时,你就放弃了那里列出的缺点
答案 0 :(得分:2)
PostgreSQL中的枚举
由PostgreSQL支持创建数据类型。
具有有序设定值的静态数据(可以通过PostgreSQL排序)
对于性能问题:PostgreSQL从不会因数据类型而导致性能问题。其中大部分是由索引,配置和错误的数据库设计引起的。
对于Enum:在PostgreSQL中它们等同于许多编程语言支持的枚举类型。枚举类型的示例可以是一周中的几天,也可以是一段数据的一组状态值。
内部枚举值到文本标签的翻译保存在系统目录pg_enum
中。直接查询此目录非常有用。
注意:基于Native或String / Integer的类型枚举都不会导致性能问题。