Это способы написания запроса без объединений в масштабируемой архитектуре веб-сайта NOSQL? - PullRequest
0 голосов
/ 25 февраля 2011

Я постоянно слышу, что один из способов создания масштабируемого веб-сайта - не использовать объединения. Как мир это делает, поскольку большинство данных реляционные?

Мое ограниченное исследование привело к следующим мыслям:

A) Если ваши данные по своей природе являются реляционными, то действительно используйте реляционную базу данных, т. Е. Используйте правильный инструмент для работы.

B) Поддерживать денормализованную версию ваших данных.

C) Для данных, которые могут быть вынуждены быть нереляционными, вы можете использовать NOSQL. Архитектор данных это таким образом, что присоединения не нужны.

D) Если вы должны связать свои данные, то прикладной уровень должен вручную реализовать объединения, выбирая наборы данных по одному и вручную связывая результаты.

E) Поскольку ручные соединения на прикладном уровне очень медленные, попробуйте сделать это в автономном режиме (а не в ожидании пользователя).

F) Используйте Map-Reduce.

Это правильно / больше ответов?

Ответы [ 2 ]

3 голосов
/ 25 февраля 2011

Высокая масштабируемость имеет отличные статьи на эту тему. Посмотрите на Reddit, чтобы узнать, как они обрабатывали соединения: http://highscalability.com/blog/2010/5/17/7-lessons-learned-while-building-reddit-to-270-million-page.html

Тогда уже есть вопрос о переполнении стека с кучей ссылок в ответах на похожую информацию: Методы написания масштабируемого сайта

0 голосов
/ 02 марта 2011

Кэшируйте как можно больше, т. Е. Когда у вас дорогие запросы (с объединениями или без), попробуйте кэшировать результат запроса, а не выполнять его снова и т. Д. Чтобы весь сайт был быстрым, кэшируйте объекты на самом высоком уровне, т. е. попробуйте кэшировать целые страницы, если это не работает, попробуйте кешировать фрагменты страниц, затем объекты данных, которые предоставляют данные для заполнения страниц и т. д. и т. д.

Предостережение: в старой поговорке «Есть только две сложные вещи в компьютерной науке: есть недействительность кэша и присвоение имен», так что будьте осторожны с тем, что вы кладете в свой кэш и как долго.

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