Нагрузка при file_exists()

yeaahhh

Старатель
Регистрация
8 Май 2008
Сообщения
278
Реакции
11
Друзья.
На сайте стоит функция, которая делает проверку через file_exists() на наличие фото у пользователя по его login'у..
(Если !file_exists(), то выводится стандартный аватар noavatar.png)

Но, заметил, что при обилии народа на сайте, процесс открытия страницы очень сильно замедляется.
ФОто пользователей грузятся достаточно долго. Предполагаю, что дело в file_exists().
Данная функция работает на странице примерно 80 раз за 1 открытие.

Ресурсозатратна ли данная функция? Есть ли аналоги?
Заранее спасибо.
 
Можно попробовать функцию is_file, но много из этого выжать не удастся, гораздо быстрее было бы хранить переменную в БД и проверять по ней
 
Что за глупости, скорее будет тормозить об БД при большой загрузке, чем об проверку файла
 
Если кроме картинок подгружается и другая инфа о пользователях из БД, то есть смысл хранить в БД путь к аватару пользователя и оттуда его подгружать(один хрен обращаешься к базе). В этом случае путь к картинке по умолчанию прописывается пользователю при регистрации и изменяется при манипуляциях пользователя с аватарой в профиле...
Но если из БД ничего не берется, то нужно ковырять код дебагерами (смотреть на что именно уходит много времени при загрузке страниц)
 
Я бы с радостью сделал считку аватара из БД, но дело в том, что нужно будет считывать из 2 таблиц..
Идёт вывод сообщений из бд. Каждая аватарка отображается: $otpravitel.".jpg?".rand(1,99999);
Рандомное число подбирается для того, чтобы обновлять кеш при загрузке, так как после смены аватара без рандомного числа срабатывает кеш и аватар не меняется.

Может быть есть что-то ресурсозатратное в том, что я описал выше?
Как оптимальнее сделать, не подскажете?
 
А у тебя в таблице сообщений хранится имя отправителя а не его id?
 
и id и его login
 
А если пользователь сменит ник после написания некоторого количества сообщений, эти сообщения с каким логином и аватаркой будут показаны?
 
ник сменить невозможно)
а к чему вы клоните?)
просто от темы немного отошли))
 
Просто для того чтобы что-то советовать, для начала нужно понять что и как у Вас работает...
P.S. Предлагаю такой вариант: При регистрации пользователя, создавайте файл с изображением noavatar.png и именем login.jpg При выборе пользователем новой аватарки, старый файл просто заменить... так у вас всегда будет файл $otpravitel.".jpg" и необходимость использовать file_exists() в принципе отпадет...
 
Назад
Сверху