[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Файловая система... (сортировка, оптимизация)...
Svist
Доброго времени суток!
Вообщем мне необходимо получить список из 50 последних созданных файлов в папке ....
Вообщем то задача не сложная можно решить примерно так : Считать в массив opendir(); readdir(); closedir(); и отсортировать usort(); ..., а если в моей папке находится к примеру не 100 и не 1000 файлов а несколько сотен тысяч файлов blink.gif .. мне кажется такой вариант будет не совсем оптимальным и быстрым .. как выйти из данной ситуации есть ли еще какие способы ??? dry.gif
За ранее спасибо !



Спустя 2 минуты, 58 секунд (29.07.2010 - 13:49) Семён написал(а):
Для начала задумайся о том какой ты создаёшь себе и серверу гемор храня всё в 1 папке.

Спустя 19 минут, 58 секунд (29.07.2010 - 14:09) FatCat написал(а):
Цитата (Svist @ 29.07.2010 - 14:46)
есть ли еще какие способы ?

При получении файла пиши в БД его имя и путь к файлу, а в другом столбце time().
Таблица на миллион файлов будет весить метров 50 и любые выборки по датам будет делать меньше чем за секунду.

Спустя 5 минут, 30 секунд (29.07.2010 - 14:15) Семён написал(а):
Цитата (FatCat @ 29.07.2010 - 15:09)
Цитата (Svist @ 29.07.2010 - 14:46)
есть ли еще какие способы ?

При получении файла пиши в БД его имя и путь к файлу, а в другом столбце time().
Таблица на миллион файлов будет весить метров 50 и любые выборки по датам будет делать меньше чем за секунду.

Хмм... интересный вариант, взял себе на заметку.

Спустя 1 час, 25 секунд (29.07.2010 - 15:15) Svist написал(а):
Цитата (FatCat @ 29.07.2010 - 11:09)
Цитата (Svist @ 29.07.2010 - 14:46)
есть ли еще какие способы ?

При получении файла пиши в БД его имя и путь к файлу, а в другом столбце time().
Таблица на миллион файлов будет весить метров 50 и любые выборки по датам будет делать меньше чем за секунду.

Да это понятно ... хотелось без лишнего запроса к БД ... да и при добавлении не получеться все это дело ....картинки загружаються по средсвам аякса.... невидимый фрейм в который грузиться картинка не конектиться к БД .. и не хотелось бы напрягать загрузку еще и лишним конектом и запросом ...
Если комуто не понятно зачем мне это то я делаю сайт topprikolov.ru уже пол года паяю потихоньку вот хочу сделать страницу только с картинками по дате их загрузки....
есть папка с кучей уже загруженных вот и думаю как удобней сделать ... в идеале хотелось сделать без запроса к БД тогда страница будет открываться всего в один запрос...., но видимо все-же наверно прейдется к базе прикручивать .... вот и думаю как оптимальней то будет ...

Спустя 46 минут, 27 секунд (29.07.2010 - 16:02) FatCat написал(а):
Цитата (Svist @ 29.07.2010 - 16:15)
хотелось без лишнего запроса к БД ... да и при добавлении

Если проблемно прикрутить запрос к БД с простым инсертом при добавлении файла, можно по крону сканировать файлы и обновлять таблицу... или генерировать текстовый файл с нужными выборками. Но ИМХО, напрямую с базой будет наименее нагрузочно и наиболее просто по коду.

Спустя 3 минуты, 37 секунд (29.07.2010 - 16:05) Svist написал(а):
Цитата (FatCat @ 29.07.2010 - 13:02)
Цитата (Svist @ 29.07.2010 - 16:15)
хотелось без лишнего запроса к БД ... да и при добавлении

Если проблемно прикрутить запрос к БД с простым инсертом при добавлении файла, можно по крону сканировать файлы и обновлять таблицу... или генерировать текстовый файл с нужными выборками. Но ИМХО, напрямую с базой будет наименее нагрузочно и наиболее просто по коду.

Вот именно наимение нагрузочно интересует .. делаю все чтобы оптимизировать сайт и свести все страницы по минимуму в запросах.... значит буду.. прикручивать к базе .
Спасибо за советы !!!!

Спустя 32 минуты, 35 секунд (29.07.2010 - 16:38) KaFe написал(а):
Svist я очень обильно работал с файлами, и скажу что функция sсandir и opendir убиваю все ресурсы сервера(
У меня даже была ситуация, что лучше сделать лишний запрос к файлу или сканировать папку, провел тесты, выбрал первый вариант laugh.gif ).
Так что используй способ, который тебе предложилFatCat это самый логичный вариант в данной ситуации. wink.gif

И да, это оффтоп
Цитата
Время генерации: 0.1355 сек., 0.0055 из этого заняли запросы. Запросов БД: 3. Использовано памяти: 2,776кБ
Вот это да, на что интересно у тебя тратится 0,13 сек, это очень большая цифра, явно двиг у тебя плохо оптимизирован или система расчетов е**нутая laugh.gif .

Спустя 5 минут, 30 секунд (29.07.2010 - 16:43) Svist написал(а):
Цитата (KaFe @ 29.07.2010 - 13:38)
И да, это оффтоп
Цитата
Время генерации: 0.1355 сек., 0.0055 из этого заняли запросы. Запросов БД: 3. Использовано памяти: 2,776кБ
Вот это да, на что интересно у тебя тратится 0,13 сек, это очень большая цифра, явно двиг у тебя плохо оптимизирован или система расчетов е**нутая laugh.gif .

х.з. .. сейчас как раз попутно занимаюсь оптимизацией кода .... Хотя возможно и второй вариант biggrin.gif biggrin.gif biggrin.gif

... только что пообновлял страницу у меня выпрыгивает восновном
Цитата
Время генерации: 0.0866 сек., 0.0059 из этого заняли запросы. Запросов БД: 3. Использовано памяти: 2,791кБ

unsure.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.