Не злоупотребляем RDB

Если наше приложение (сайт) активно использует RDB (relational database), например MySQL или PostgreSQL, у нас появляется определенный соблазн пихать туда что ни попадя, даже безо всякой надобности. Понадобился флаг? — создадим табличку. Захотелось сохранить профиль посетителя в виде одного XML-файла? — создадим еще одну.

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

А где же хранить? В memcache(d) данные не проживут и месяца (в лучшем случае). Но есть не менее эффективные решения, из которых, по мне, на первом месте MemcacheDB — key-value база, использующая протокол memcached. Места занимает необходимый минимум, ресурсы тоже потребляет минимальные, производительность (при минимальном функционале) обеспечивает максимальную.

Не забываем, что в rc.conf, как и в случае с memcache, кроме memcachedb_enable доступно и memcachedb_flags. Ну и, конечно, изучаем memcachedb -h.

Удобно, что протокол memcached позволяет использовать стандартные драйверы memcache. Еще лучше, что то же обстоятельство позволяет читать/писать прямо с сервера, без обращения к fastcgi (модуль memc для nginx).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *