Производительность таблиц SQL - больше или меньше таблиц?
При создании системы уведомлений я столкнулся с вопросом. Сообщество, для которого создана система, довольно большое, и у меня есть 2 идеи для моих таблиц SQL:
Сделать одну таблицу, которая включает в себя:
таблица комментариев:
id(AUTO_INCREMENT) | comment(text) | viewers_id(int) | date(datetime)
В этом варианте комментарии хранятся с датой, и все пользователи, просмотревшие комментарий, делятся на ",". Например:
1| Hi I'm a penguin|1,2,3,4|24.06.1879
Система должна теперь использовать столбец
viewers_id
решить, должен ли он показывать уведомление или нет.сделать две таблицы как:
таблица комментариев:
id(AUTO_INCREMENT) | comment(text) | date(datetime)
таблица зрителя:
id(AUTO_INCREMENT) | comment_id | viewers_id(int)
пример:
5|I'm a rock|23.08.1778 1|5|1,2,3,4
В этом примере мы проверяем
viewers_id
снова.
Какие из них могут иметь лучшую производительность?
1 ответ
По моему мнению, вам не следует уделять слишком много внимания оптимизации ваших таблиц, поскольку в первую очередь гораздо полезнее оптимизировать ваше приложение.
Теперь к вашему вопросу:
Повысить производительность таблицы SQL можно двумя способами:
1. Нормализовать, как для каждой таблицы SQL, я бы порекомендовал вам ее нормализовать: Википедия - нормализация 2. Вы можете уменьшить параллелизм, что означает сокращение количества раз, когда данные не могут быть доступны, потому что они изменяются.
как для вашего примера: если бы мне пришлось выбрать один из них, я бы выбрал второй вариант.