Вот не могу никак решить где лучше хранить фотографии .. в БД или в файлах .. краткое описание ... Сайт с анкетами на куждую анкету по 8 фоток ... примерная посещяемость 5к в день .. как вы считаете где их лучше хранить?
Файлами и только файлами. В БД достаточно хранить пути к файлам. Работа с БД занимает 80% процессорной мощности от выделенной под сайт. Как минимум лишняя нагрузка на сервер.
ну смотри на скоко я знаю запрос вида SELECT `last_update` FROM `time` WHERE name = "update" работает не намного медленее file_get_contents('last_update.txt');
PHP: <?php mysql_connect('localhost','root','') or die('a'); mysql_select_db('a') or die('a'); $i = 0; $time = microtime(1); while($i < 20) { $res = mysql_query('SELECT a FROM a') or die('a'); $a[] = mysql_fetch_array($res); $i++; } $time = microtime(1) - $time; echo $time.'<br><BR><BR><BR>'; $i = 0; $time = microtime(1); while($i < 20) { $re[] = file_get_contents('a.txt'); $i++; } $time = microtime(1) - $time; echo $time.'<br><BR><BR><BR>'; ?> a.txt Code: 1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe mysql Code: -- -- Структура таблицы `a` -- CREATE TABLE IF NOT EXISTS `a` ( `a` varchar(261) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Дамп данных таблицы `a` -- INSERT INTO `a` (`a`) VALUES ('1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe1wqe'); Результат 0.00867295265198 0.0285441875458 хм =\ GreenBear ты прав просто хотел человеку показать что БД это не такой пожиратель ресурсов ка кнам его описывают .. файловая систему тоже грешит этим --- п.с по теме .. просто бд легче управлять всем этим .. удаление замена и т.д .. просто если так посмотреть при удалении замене в случае с БД может работать быстрее чем с файловой системой .. потому как там хватит одного апдейта .. а в файлах нужно использовать пару ф-ций ..
Я бы посоветовал из базы брать адрес (или только название) к картинке и подставлять в <img src="">, а сами картинки хранить в отдельной папке. Плюс не надо будет реализовывать кэширование. Вот если посчетать сколько всего будет записей в БД, тогда можно будет сделать более точные расчёты. PS вот это вообще не понятно зачем надо: $re[] = file_get_contents('a.txt');
ChieFSS это было для вывода .. а если замена и удаление? например мне надо чтоб фота название фоты было такое id_(номер с 1 до 8) получается типо 45654_5.jpg например .. а еси чел удаляет скажем фоту 45654_4.jpg и добовляет ещё фоту .. мне ж нужно её вставить на место 45654_4.jpg а теперь иди и считай какой по счёту фоты не хватает чтоб вставить место неё .. в этом случае в БД будет быстрее
Чем больше база тем медленнее она работает, да и в БД никто не хранит файлы, я как минимум SQL inj смогу сделать просто загрузив файл
REBUUS ммм не думаю то это так очевидно как вы это пишете =) например в булке есть возможность хранения изображений в БД и если не ошибуюсь эта возможность стоит по умолчанию и + для безопасности .. т.к нету папок с правами записи и о какой скуле идёт речь? когда внутрености файла экранируется а имя изменяется думаете в булке(vbulletin) маленькие БД ?
А какая разница какое название у фотки будет? Вам же не надо руками в папку лазить. Допустим такая структура: id, filename. В поле filename пишите через запятую (двоеточие, кавычки) названия фоток и всё. И пускай они называются хоть 000001, хоть 987654. Вариантов можно миллион придумать.
Смотри раз экранировали ЗНАЧИТ надо обратно все это дело перевести в норму, чтобы пользователь видел картинку, а тут регулярка и она будет тормазить скрипт...
ChieFSSэто вредит безопасности ... там уязвимость с нулл байтом есть (была) хз какая там версия пхп в любом случае оставлять загружаемое название файла глупо ИМХО
KaMiKadZe Оо ... ты походу не понимаешь что такое экранирование .. это не фильрация .. Gray_Wolf просмотр =) REBUUS такое вот условие .. не могу ничё с ээтим сделать
KaMiKadZe верно .. но при экранировании в БД пишется всё в не \' а ' так что возвращять ничё не надо .. и причём тут регулярка ? п.с кстате это не только ' " а всех спец символов =)
хм...у меня такого не было, mysql_escape_string заносило в базу \', а при выводе приходилось через регулярку заменять \' на ' Тогда уж извини, но хранить не стоит в базе такие вещи, если знаешь что такое java сервак lineage 2 на базе mysql, то поймешь