Перечисления хранятся так, как если бы существовала таблица поиска, поэтому в каждой строке хранится только числовая ссылка, а таблица поиска - в другом месте. Технически, сопоставление целочисленного значения перечисления происходит так же быстро, как сопоставление целого числа, так как оба идентичных идентификатора, а сопоставление строкового значения незначительно медленнее (во всех случаях, кроме одного), просто потому, что выполняется только еще один «поиск», через таблица поиска для поиска целочисленного значения, которое затем используется для поиска.
Это один пример, если вы ищете значение, которое не существует, попробуйте сопоставить числовое значение enum с значением, которое не существует, и он все равно будет искать по всем данным, но попытаться сопоставить строку значение, которое не существует, и выполняется меньший поиск в таблице поиска, не возвращая соответствия до поиска любых данных.
Не используйте перечисления для ответов "да / нет" или "мужчина / женщина", поскольку числовые данные и справочная таблица занимают гораздо больше места, чем значение "бит" (0 или 1). Кроме того, не используйте числовые строки в определении перечисления, например, enum ("1", "0"), так как это сбивает с толку любого, кто смотрит на код и запрос (потому что сохранена таблица поиска: [0 => "1", 1 => "0"].