Люди, которые хранят файлы в базе — больные извращенцы.
Если это MySql, хехе.
В Монго есть специальный механизм для хранения файлов в «базе», называется GridFS.
Полезностей у него минимум две:
1. Легкий бэкап кучи файлов с помощью репликации базы.
2. Все равно нужна таблица с метаинформацией к файлам, тут все хранится «вместе».
Цитата раз:
A: The nice thing about GridFS is that it streams the data back to the client, so you never need more than 4MB of memory.
Q: Now I know.
Цитата два:
There is currently no method that automatically streams chunks, but it would be fairly easy to write by querying the $grid->chunks collection.
Кто-то из них явно пиздит. Скорее всего, везде, кроме Советской России, файл и правда отдается чанками, но конкретно в PHP такого способа нет (MongoGridFSFile::getBytes() грузит файл целиком в память).
Пришлось делать как-то так, короче:
foreach($cursor as $chunk) echo $chunk['data']->bin;$cursor = $M[chunks]->find(array("files_id" => $img->file['_id']))->sort(array("n" => 1));
В общем, я на очередном дейтинге проекте пока сделал «все картинки в базе», а там поглядим.
Это великолепно.
Нет, правда.