Не могли бы вы поделиться своим пониманием масштабируемости?
Допустим, у меня есть простая следующая база данных MySQL / RDBMS для древовидного обсуждения:
Таблицы:
- обсуждение (идентификатор, URL)
- комментарий (идентификатор, обсуждение ID, parentCommentId, слаг)
- comment_vote (обсуждение, идентификатор комментария, идентификатор пользователя, значение)
TheИдея состоит в том, чтобы выполнять менее частые записи (в отличие от более частых чтений) в эту структуру РСУБД и после перезаписи кэша записи для всего обсуждения в некоторый кэш чтения (вероятно, документ БД), где хранится формат, который можно обслуживать без дальнейшей обработки вклиент.
- Давайте ожидать 250 МБ новых данных каждый день или 1000 запросов в минуту (чтение 90%).
- В comment_vote мы должны как-то убедиться, что для конкретного комментария существуетмакс. 1 голос за каждого пользователя.
- БД защищена ключом DiscussionId, и у нас есть кластер БД с произвольным числом узлов
1.Мы идем в реальность с этим макетом?Я имею в виду, у нас есть только 3 таблицы здесь.Есть ли очевидное узкое место?Как и при перестроении индексов, при некоторой блокировке на уровне таблиц ... при каждой вставке в таблицы, которые должны иметь сотни гигабайт и более?
2. / Будет ли разумнее использовать базу данных документов также дляпишет, потому что, например, они могли бы справиться с лучшей физической блокировкой для небольших деталей?
3. / Есть ли другие идеи / лучшие решения?
Большое спасибо.