Наверное буду аттачи в базу заталкивать

Ну не в mysql, ясен пень. В монгу. Нашел бенчмарк не первой свежести, других нету:

coffeepowered.net/…/serving-files-out-of-gridfs/

Всего в 6 раз медленнее. Зато нема тонн файлов/директорий, не надо мудиться с именами, и репликация/шардинг с пол пинка. К тому же есть мнение, что nginx-овский модуль сильно проседает из-за того, что написан в блокирующем режиме. Исходники тут:

github.com/mdirolf/nginx-gridfs

Впрочем, есть совсем простая идея. На полноразмерные аттачи спрос не сильный - в основном на превьюшки и аватарки. Можно в nginx на них кеш зарядить и не париться. Такие картинки автоматически в виде файлов кеша сложатся, а места на диске добавят процентов 20, что вполне приемлимо. То бишь, и отдаваться будут быстро, и храниться так, как удобно. Осталось сочинить структуру монговских коллекций, куда пихать файлы с метаданными, и формат ссылок, чтобы легко разруливать размеры.

  • 660