Я бы хотел больше изучить тему полных шаблонов проектирования данных.В частности, различные сочетания технологий для хранения, обработки, кэширования и извлечения данных.Другими словами, посмотрите, сколько компонентов используется в больших системах, таких как facebook .
Насколько мне известно, у нас есть RBMS и NoSQL вкусы баз данных категорий.Тем не менее, многие другие технологии (за исключением постоянного хранения данных) критически важны для реального использования данных, такие как memcached .Тем не менее, я не могу найти много общих шаблонов проектирования, которые должны использоваться, чтобы максимально использовать все архитектуры.
Есть ли у кого-нибудь ссылки на статьи о целых пакетах шаблонов проектирования, которые могут быть выполнены с использованием различных комбинаций компонентов системы базы данных?
Это не вопрос для лучших рекомендаций БД, таких как нормализация базы данных .Речь также не идет о том, как лучше всего использовать определенную технологию .
Какие шаблоны проектирования можно использовать для правильного сочетания странных технологий, чтобы использовать преимущества каждой из них для создания завершенного и эффективногосистемы?От кэширования, до CRUD, до масштабирования, до целостности данных.
Например, на небольших общих хостах я могу запускать такие вещи, как блоги, из SQLite, так как практически все они читают и не пишут.С другой стороны, некоторые проекты используют низкоуровневые VPS, и я могу использовать кэш MySQL + APC (в конце концов, это всего лишь один сервер) для потрясающей производительности при высокой скорости чтения / записи.С более чем одним VPS memcached является чемпионом!
Я также фанат MongoDB и PostgreSQL.Однако MongoDB не использует никаких ограничений ОЗУ, поэтому у вас должен быть отдельный сервер.Тем не менее, хранение больших объектов в MongoDB и оставление остальных важных данных в PostgreSQL - это беспроигрышный вариант.
Тем не менее, это все очень простые варианты проектирования.Крупномасштабные приложения разработаны с гораздо большей абстракцией для обеспечения масштабирования и уменьшения количества точек отказа.