Nuno Asked: 2021-02-13 17:06:34 +0800 CST2021-02-13 17:06:34 +0800 CST 2021-02-13 17:06:34 +0800 CST ENUM 列的排序规则会影响它们的大小吗? 772 ENUM当我们说 an具有utf8mb4, 与的字符集时,这是什么意思latin1? 我的理解是,它ENUM拥有一个数字索引(1、2、3、4...),用于标识哪些ENUM值(abc、def、ghi、jkl...)。 如果我使用utf8mb4一个ENUM列,该列使用的存储空间是否比我使用的多latin1? mysql mariadb 1 个回答 Voted Best Answer Rick James 2021-02-13T18:59:15+08:002021-02-13T18:59:15+08:00 没有不同。 ENUM存储为 1 或 2 字节的数字,其中 0 映射到列表中的第一项。您将列作为字符串处理,但磁盘只看到一个数字。 仅在有255个以上的选项时使用2个bytes。有些人完全避免使用 ENUM;有些人对多个选项不屑一顾。我说将 ENUM 用于一个很小的、不太可能改变的选项列表。 如果您的数据库和连接规范不一致,可能会出现字符集或排序规则问题。
没有不同。
ENUM
存储为 1 或 2 字节的数字,其中 0 映射到列表中的第一项。您将列作为字符串处理,但磁盘只看到一个数字。仅在有255个以上的选项时使用2个bytes。有些人完全避免使用 ENUM;有些人对多个选项不屑一顾。我说将 ENUM 用于一个很小的、不太可能改变的选项列表。
如果您的数据库和连接规范不一致,可能会出现字符集或排序规则问题。