Шаблоны проектирования данных / базы данных?

Я хотел бы больше изучить тему полных шаблонов проектирования данных. В частности, различные сочетания технологий для хранения, обработки, кэширования и извлечения данных. Другими словами, посмотрите, сколько компонентов используется в больших системах, таких как facebook .

Насколько мне известно, у нас есть RBMS и NoSQL разновидности базы данных. категории. Однако многие другие технологии (помимо постоянного хранения данных) критически важны для использования данных в реальном мире, например, memcached . Тем не менее, я не могу найти много информации об общих шаблонах проектирования, которые следует использовать, чтобы получить максимальную отдачу от всех архитектур.

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

Это не вопрос конкретных передовых практик БД, таких как нормализация базы данных . Это также не вопрос о том, как лучше всего использовать определенную технологию .

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

Например, на небольших общих хостах я могу запускать такие вещи, как блоги, с помощью SQLite, поскольку он почти полностью читает, а не записывает. С другой стороны, некоторые проекты находятся на низком уровне VPS, и я могу использовать кеш MySQL + APC (в конце концов, это всего лишь один сервер) для потрясающей производительности при высокой скорости чтения / записи. С более чем одним VPS memcached - чемпион!

Я также поклонник MongoDB и PostgreSQL. Однако MongoDB не использует никаких ограничений оперативной памяти, поэтому вам действительно нужен отдельный сервер. Тем не менее, сохранение больших объектов в MongoDB и оставление остальных важных данных в PostgreSQL - беспроигрышный вариант.

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

10
задан Community 23 May 2017 в 12:04
поделиться