МОЯ ПЛАТФОРМА:
PHP и mySQL
МОЯ СИТУАЦИЯ:
Я столкнулся с ситуацией, когда мне нужно сохранить значение для выбора пользователя в одном из моих столбцов таблицы. Теперь мои варианты:
- Объявите столбец как char (1) и сохраните значение как 'y' или 'n'
- Или объявите столбец как tinyint (1) и сохраните значение как 1 или 0
- Этот объявленный столбцом также может быть проиндексирован для использования в приложении.
МОИ ВОПРОСЫ:
Итак, я хотел знать, какой из этих двух типов:
-
Приводит к более быстрой скорости запроса при доступе к этому столбцу (для простоты, оставьте без смешивания другие запросы или доступ к другим столбцам, пожалуйста).
-
Является наиболее эффективным способом хранения и доступа к данным и почему?
-
Как скорость доступа меняется, если столбцы индексируются, а когда нет?
Я понимаю, что, поскольку char (1) и tinyint (1) занимают только 1 байтовое пространство, пространство для хранения в этом случае не будет проблемой. Тогда осталась бы скорость доступа. Насколько мне известно, числовое индексирование быстрее и эффективнее всего. Но я считаю, что здесь трудно принять решение. Было бы обязательно услышать ваш опыт на этом.
Спасибо заранее.