Очевидно, что если ваши структуры данных короче, они быстрее сравниваются и быстрее сохраняются и извлекаются.
Насколько быстрее 1, 2, 1000. Все зависит от размера таблицы и т. Д..
Например: скажем, у вас есть таблица с productId и текстовым столбцом varchar.
Каждая строка будет занимать примерно 4 байта для int
, а затем еще 3-> 24 байта для текста в вашем примере (в зависимости от того, является ли столбец обнуляемым или имеет Unicode)
Сравните это с 5 байтами в строке для тех же данных со столбцом состояния byte
.
Эта огромная экономия пространства означает, что на страницу помещается больше строк, больше данных помещается в кэш, меньше записей происходит при загрузке данных хранилища и т. Д.
Кроме того, сравнение строк в лучшем случае выполняется так же быстро, как сравнение байтов, а в худшем случае - намного медленнее.
Существует вторая огромная проблема с хранением текста, в которой вы намеревались получить перечисление.Что происходит, когда люди начинают хранить Incompete
, а не Incomplete
?