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

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

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

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

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

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

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

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

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

Ответ 1

Мое предложение состояло бы в том, чтобы читать о базах данных в целом, с пониманием различных типов структуры хранилища, которые были использованы.

Как только у вас есть этот фон, становится легче сопоставлять текущую технологию (NoSQL) со структурой хранилища (без схемы, горизонтальный масштабируемый).