Вообщем мне необходимо получить список из 50 последних созданных файлов в папке ....
Вообщем то задача не сложная можно решить примерно так : Считать в массив opendir(); readdir(); closedir(); и отсортировать usort(); ..., а если в моей папке находится к примеру не 100 и не 1000 файлов а несколько сотен тысяч файлов .. мне кажется такой вариант будет не совсем оптимальным и быстрым .. как выйти из данной ситуации есть ли еще какие способы ???
За ранее спасибо !
Спустя 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) | ||
При получении файла пиши в БД его имя и путь к файлу, а в другом столбце time(). Таблица на миллион файлов будет весить метров 50 и любые выборки по датам будет делать меньше чем за секунду. |
Хмм... интересный вариант, взял себе на заметку.
Спустя 1 час, 25 секунд (29.07.2010 - 15:15) Svist написал(а):
Цитата (FatCat @ 29.07.2010 - 11:09) | ||
При получении файла пиши в БД его имя и путь к файлу, а в другом столбце 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) | ||
Если проблемно прикрутить запрос к БД с простым инсертом при добавлении файла, можно по крону сканировать файлы и обновлять таблицу... или генерировать текстовый файл с нужными выборками. Но ИМХО, напрямую с базой будет наименее нагрузочно и наиболее просто по коду. |
Вот именно наимение нагрузочно интересует .. делаю все чтобы оптимизировать сайт и свести все страницы по минимуму в запросах.... значит буду.. прикручивать к базе .
Спасибо за советы !!!!
Спустя 32 минуты, 35 секунд (29.07.2010 - 16:38) KaFe написал(а):
Svist я очень обильно работал с файлами, и скажу что функция sсandir и opendir убиваю все ресурсы сервера(
У меня даже была ситуация, что лучше сделать лишний запрос к файлу или сканировать папку, провел тесты, выбрал первый вариант ).
Так что используй способ, который тебе предложилFatCat это самый логичный вариант в данной ситуации.
И да, это оффтоп
У меня даже была ситуация, что лучше сделать лишний запрос к файлу или сканировать папку, провел тесты, выбрал первый вариант ).
Так что используй способ, который тебе предложилFatCat это самый логичный вариант в данной ситуации.
И да, это оффтоп
Цитата |
Время генерации: 0.1355 сек., 0.0055 из этого заняли запросы. Запросов БД: 3. Использовано памяти: 2,776кБ |
Вот это да, на что интересно у тебя тратится 0,13 сек, это очень большая цифра, явно двиг у тебя плохо оптимизирован или система расчетов е**нутая .
Спустя 5 минут, 30 секунд (29.07.2010 - 16:43) Svist написал(а):
Цитата (KaFe @ 29.07.2010 - 13:38) | ||
И да, это оффтоп
Вот это да, на что интересно у тебя тратится 0,13 сек, это очень большая цифра, явно двиг у тебя плохо оптимизирован или система расчетов е**нутая . |
х.з. .. сейчас как раз попутно занимаюсь оптимизацией кода .... Хотя возможно и второй вариант
... только что пообновлял страницу у меня выпрыгивает восновном
Цитата |
Время генерации: 0.0866 сек., 0.0059 из этого заняли запросы. Запросов БД: 3. Использовано памяти: 2,791кБ |