@enigma2030

MySQL выборка, что быстрее?

Добрый день. Уважаемые гуру MySQL, проконсультируейте пожалуйста. Возник спорный вопрос как лучше хранить данные для оптимальной выборки.
Дано. Таблица пользователей.
Необходимо. Реализовать рассылку по SMS.
Вариант 1. В таблице с пользователями хранить признак того что пользователь может получать SMS.
Вариант 2. Создать дополнительную таблицу, в которой будут храниться пользователи которые могут получать SMS.
Во первых, что правильнее в плане архитектуры, а во вторых насколько медленнее будет работать выборка при втором варианте.
  • Вопрос задан
  • 313 просмотров
Пригласить эксперта
Ответы на вопрос 4
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
А смысл выделять свойство сущности в отдельную таблицу? Конечно же хранить в основной.
Ответ написан
fornit1917
@fornit1917
Зачем вам дополнительная таблица? Что это даст?
Заведите флажок в таблице юзеров и индекс на него.
Ответ написан
@Archusha
https://agaltsovav.ru/
Смотря какую выборку вы делаете.

В первом варианте, если у вас признак отмечен как индекс, то работать будет достаточно быстро.
С вторым вариантом у вас возникнет проблема с изменением данных, точней не проблемы, а накладные расходы.

Если у вас единая выборка по рассылки "всем пользователям у кого стоит отметка" то оба варианта будут работать приблизительно одинаково. Если вы делаете выборку по группам пользователей, а потом выборку по признаку отправки смс, то вариант первый должен быть быстрей, так как задействована одна таблица.
Ответ написан
streetflush
@streetflush
А Я вот не сторонник тянуть такие флаги в основную таблицу....
Взяли новую, со связью 1 к 1 или 1 ко многим.
Перестраивать архитектуру таблицы ради галочки.... А потом их будет 100, 1000
Да и места занимать будет меньше. ИМХО
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы