该教科书告诉我,不建议使用枚举数据类型的索引。但它没有告诉我为什么。我应该使用ENUM的索引吗?本书还告诉我,我们应该在WHERE子句中使用我们使用的列索引。我总是在我的查询的WHERE部分中使用ENUM,并且应该根据本书进行索引。它也表示不索引枚举的数据类型。现在我该怎么办?ENUM数据类型的索引
编辑:
我想我犯了一个错误,而问,我刚刚看了一遍同一本书,我想我有一个误解,而读的书并没有明确说,我们不应该对ENUM使用索引但它表示我们不应该使用具有非常有限值的列的索引,例如yes/no,0/1等。我从本书中抓取的是这些列是ENUM类型的。
ENUMS也可以有NULL值,因此他们不应该被索引.. https://dev.mysql.com/doc/refman/5.7/en/enum.html –
我不认为我有一列我的系统使用ENUM类型。只是在说'。 – Strawberry
@Strawberry ..在数据库中枚举或不在数据库中是个人偏好,但它确实为可能修改表单字段和不应该在数据库中的输入值的用户提供某种数据库级别的安全性。例如: - 性别列如果不是enum,那么你可以让某人进入数据库,当你选择你的数据时你会遇到问题 –