Что лучше: обновить notifications_count для пользовательской таблицы или SELECT count (*) из таблицы уведомлений? - PullRequest
0 голосов
/ 27 февраля 2019

Я создаю систему уведомлений внутри моего приложения rails и хочу знать, что будет работать лучше в масштабе.

Я могу создать для пользователя столбец с именами notifications_count и UPDATEэто каждый раз, когда создается новое уведомление, и UPDATE оно каждый раз, когда просматриваются уведомления, чтобы очистить счет.

Я также могу запустить подсчет в таблице уведомлений и отфильтровать его по user_id и флагуunread.

Уведомления станут большой функцией в этом приложении, и эта таблица очень быстро увеличится в размере даже для отдельных пользователей.

Учитывая, что таблица в конечном итоге будет содержатьмного данных, какой подход будет лучше?

Есть ли другое решение, которое будет лучше масштабироваться?

1 Ответ

0 голосов
/ 27 февраля 2019

С точки зрения реляционного моделирования наличие этого дополнительного столбца с счетчиком было бы избыточным и, следовательно, плохим.

Однако это сделает запрос на счет намного быстрее, за счет дополнительной работы во время данных.модификаций.

Я бы принял решение, зависящее от относительной частоты запросов для подсчета по сравнению с модификациями данных.Если запрос на подсчет будет одним из ваших самых частых, я бы пожертвовал чистотой ради производительности.

Решение в основном не зависит от размера базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...