- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
День добрый.
Стоит такая задача:
Есть файл, в котором дано 500 000 строк. Получить строку из такого файла имея её номер.
Например в файле 4 строки:
Вася
Петя
Чтото
Както
...
Нужно получить строку под номером 4 - "Както".
Всё бы ничего, казалось бы:
Но если массив на пол миллиона строк и скрипт будет вызываться очень часто памяти сервера нехватет так как скрипт слишком ресурсоёмкий. Решение не оптимально. Функция file записывает весь файл в масиив...Нужно как то читать файл и постараться обратиться к нужной строке. Возникли идеи про fgets. Читаем файл, подсчитываем строки, на каждой итерации и смотрим номер:
Но этот вариант тоже думаю ресурсоёмкий :(
Может кто знает методы поиска оптимальные для данной задчи.
Про БД не советуйте - задача именно с файлом.
Roin,
Как может меняться исходный файл и как часто?
Если файл может только добавляться, то все просто.
Делим файл на любое количество файлов по 100-1000 строк.
Дальше используем любой из Ваших вариантов, зная к какому из файлов нужно обращаться....
Roin,
Как может меняться исходный файл и как часто?
Если файл может только добавляться, то все просто.
Делим файл на любое количество файлов по 100-1000 строк.
Дальше используем любой из Ваших вариантов, зная к какому из файлов нужно обращаться....
Меняться файл воопще не будет.
Идея хорошая, спасибо :)
Это один из вариантов.
Но хотелось бы без разделения на файлы.
Roin, если файл не будет меняться, то просто составьте массивцик
"номер строки" => смещение в файле
и потом используйте
$str = fseek($fh, $from);
$str = fget($fh, $len);
len уж сможете наверное вычислить зная начала крайних строк.
bearman добавил 11.11.2009 в 16:58
думаете бд тоже каждый раз перечитывают все? :-D
они тоже индексируют данные