Автор оригинала: SeazoN
Лично у меня 8- метровый файл прочитался за
0.067082 сек
В чём проблема-то? Я не врубился.
Поподробней плз. Что за цикл-то, а без него - никак?
объясняю: парсю файлы статистики (построчно выбираю, формат %s\t%s\n и тут же по массивам раскидываю)- со всеми наворотами - 20 тысяч записей в секунду средняя скорость...
за один проход все данные, необходимые мне, снимаю через десяток массивов и закидываю их в сводные файлы статистики...
проблема: надо три двухмерных массива использовать дополнительно, один такой закинул ради теста, у меня скрипт очень долго начал выполняться, не дотягивает до конца. пробовал память для пхп и время выполнения увеличить, не помогает...
по поводу молодости - у меня сначало все на мускуле и было, однако как только дал нагрузку в пару тысяч записей, все сдохло...
в форуме спросил, сказали что при двух объединениях размер памяти для этой операции вырастает в кубической зависимости... вот так...
после этого почитал теорию по реляционным базам данных, по истории их развития... согласен конечно, что не просто так прогресс идет, базы данных применяют...
однако все зависит от задачи.
Мои критериии следующие выбора работы пхп+файл :
1.вставка записей в файл через пхп - 4 тысячи в секунду, в БД мускул(без индексов) - 2500, с индексами - минус 20%.
2. при выборке (без сортировок, условий - мне это не надо - есть указатель смещения в файле, с какого места парсить) данных - мускул проигрывает тоже процентов на 10-20.
3.Учитывая то, что для формирования этой статистики в мускул надо посылать несколько десятком запросов, многие из которых на серьезных нагрузках - больше тысячи записей просто дохнут как мухи даже с индексами и проверкой на эксплеин, решает все...
я сам бьл не против базы данных и первую версию РЕАЛИЗОВАЛ НА МУСКУЛЕ, но когда столкнулся с проблемой сравнения двух соседних элементов - мускул это делает с двумя left join и жрет памяти немеремо и умирает на тысячи записей, а для пхп - это только два одномерных массива, летает на сотнях тысяч записей.
примеров в этом у меня много...
4.мускул при создании индексов много дополнительного места берет - для минимального индекса надо практически столько же места, сколько занимает сама статистика... по-моему, это слишком... на уровне файловой системы все рещается парой каталогов(без дополнительных затрат места) и файл с номером байт смещения в основном файле - места, с которого надо парсить...
Думается, что для моих задач файл+пхп на порядок лучше мускула..