![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Psytodelist |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.3.2010 Репутация: нет Всего: нет |
Здравствуйте! Хотелось бы узнать насколько быстра функция file_exists()
и как влияет на скорость её выполнения количество обрабатываемых ею файлов в директории. Дело в том, что у меня есть скрипт загрузки фотографий, а фотографии придается уникальный id md5(uniqid(rand(),1)) хотелось бы на всякий случай сделать проверочно-переименовательный цикл типа: пока (файла с таким именем в директории есть) делай { если (есть такой файл) {переименуй этот файл на id md5(uniqid(rand(),1))} } Насколько сильно повлияет на скорость выполнения скрипта подобная конструкция при условии, что фотографий в директории относительно много? |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 34 Всего: 67 |
А померять религия не позволяет?
плохо влияет. Насколько -- зависит от файловой систему (не уверен, что значительно) -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| Psytodelist |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.3.2010 Репутация: нет Всего: нет |
Позволяет. А как это сделать, не подскажите? |
|||
|
||||
| Shogun |
|
|||
|
сёгун-сан ![]() ![]() Профиль Группа: Участник Сообщений: 290 Регистрация: 8.6.2006 Где: Кишинёв Репутация: 9 Всего: 11 |
Но если собирается очень много файлов, то лучше разбить их по поддиректориям. -------------------- 2b || !2b |
|||
|
||||
| Psytodelist |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.3.2010 Репутация: нет Всего: нет |
Shogun, в очередной раз даёте дельные советы. С уважением.
Добавлено через 9 минут и 20 секунд Shogun, а имеет ли смысл вообще делать подобную проверку в цикле, если я даю файлам имя md5(uniqid(rand(),1)) и бросаю их в поддериктории, которые создаются относительно даты. Все говорят: "Не мучайся, не думай.... вероятность повторов крайне мала". Все-равно как-то 32 символа с расстановкой по 1234567890abcdef не на шутку дает усомнится в подобных советах. |
|||
|
||||
| s0lman |
|
|||
|
Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
Операция не настолько быстрая, чтобы проверка file_exists() ее существенно замедлила (если не 30 тыс файлов в 1 папке лежит) Второй момент. Если фотографии загружаются, то, подозреваю, имена файлов где-то в таблице сохраняются - что мешает сделать выборку из базы вместо просмотра списка файлов? (если нет, то можно создать) Если быстродействие уж очень критичное, то можно прикрутить мемкеш) -------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
| Absinthe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
Советую загружаемые фото раскладывать по разным каталогам(например на 256 на основе первых 2х символов хэша имени) т.к. наличие множества файлов в одном каталоге сильно замедляет работу всех популярных ФС.
|
|||
|
||||
| Psytodelist |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.3.2010 Репутация: нет Всего: нет |
Нет, как раз работу с БД я решил избежать при загрузке фотографий. Загрузка идет через аякс, который возвращается массив названий загруженных фото и вставляет их в захайденый инпут. Во время выполнения заказа идет внесение этого массива и информации о заказчике в БД. Фотографии - в одну таблицу с уникальным ИД, а информацию о заказе в другую с соответствующей ссылкой в виде уникального идентификатора массива фотографий, которые были загружены перед отсылкой данного заказа. |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 34 Всего: 67 |
Т.е. клиент передумал, и мы получили подвисшие файлы, о которых нет никакой информации в системе. Как чистить -- хз... Не очень удахный вариант, как по мне -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| Shogun |
|
||||
|
сёгун-сан ![]() ![]() Профиль Группа: Участник Сообщений: 290 Регистрация: 8.6.2006 Где: Кишинёв Репутация: 9 Всего: 11 |
Ну так в чем собственно проблема? Для чего Вам нужен file_exists?? Если фотография попала в этот массив я так понимаю она загружена и нет смысла в file_exists.
Зачем Вам переименовать файлы уже после того как они загружены а не сразу?
-------------------- 2b || !2b |
||||
|
|||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |