Для базы данных mysql лучше использовать (для производительности и т.д.) буквы или цифры для хранения данных?
Вот что я имею в виду, 3 примера: (125015
представляет категорию Arts & Entertainment
)
varchar(255)
с именем
category
со значением строки Arts and
Entertainment
.varchar(255)
с именем category_num
со значением строки 125015
bigint(255)
с именем category_int
со значением строки 125015
Итак, для оператора select. Запрос из какого столбца позволит серверу работать лучше?
1. SELECT from table WHERE
category = 'Arts and Entertainment'
2. SELECT from table WHERE
category_num = '125015'
3. SELECT from
table WHERE category_int = 125015
Кроме того, будут ли какие-либо преимущества (по сравнению с exaple 1
) для использования примера 2
, который хранит числа внутри varchar, а не int?
Чем меньше тип данных, тем меньше будет индекс над ним, и тем быстрее будет поиск.
Числа явно лучше, чем строки. Известно, что сравнение строк очень медленное.
Пример 2 будет по-прежнему менее эффективным, чем # 3, хотя, возможно, несколько быстрее, чем # 1, поскольку строковое значение в # 2 короче, но в любом случае # 1 и # 2 имеют одну и ту же категорию производительности.