枚举在实际数据表使用中不太多,但是在某些场合却是可以发挥更好的性能,例如使用枚举替换有限的字符串值。需要注意的是枚举的存储结构有点特殊,本篇介绍枚举的应用场合及优势。
枚举在 MySQL 中的存储方式十分精简,依据枚举值的多少使用1-2个字节来存储。枚举在内部实际是使用整数代表列在对应枚举值的位置,然后在数据表中有一个后缀为.frm 的对照表文件存储枚举真实对应的值。以下面的表为例:
CREATE TABLE t_enum_test (
gender ENUM('male', 'female', 'unknown') NOT NULL
);