Да, я php занимаюсь 5 лет, но нигде не работал и проектов серьезных не делал, поэтому на подобные вещи мне никто не может указать)
Ну...вот указываю, при большом объеме данных это шняга будет тупить, не то что бы критично, но когда речь идет о скорости, она будет ощутима. А если mb_substr то ваще жопа ) вобщем лишнее оно там, в цикле проверяй нужна ли там запятая или нет
Понял, спасибо. Почитал только что, да, походу тема нормальная. То есть ты предлагаешь сначала обработать весь прайс, сохранить его в обработанном виде, а потом с помощью этого оператора загрузить целиком?
Не, СНАЧАЛА ты махом обрабатываешь ВЕСЬ файл и загоняешь его в БД, а потом уже тянешь из бд и делаешь что тебе нужно.
А от загрузки xml-файлов наверное вообще лучше избавиться, потому что пользователям без разницы во что их excel прайс сохранить - csv или xml, а загрузка xml куда геморнее в плане нагрузки Добавлено спустя 1 минуту 19 секунд: Ок, понял, вечером попробую.
В общем у меня стояла проверка: каждая позиция проверялась в базе на наличие, и если она там была, то повторно не загружалась, то есть если у клиента в прайс-листе повторный артикул, то он не записывался. А сейчас я решил, что это не нужно, так как, во-первых, эти позиции - автозапчасти, у которых могут быть одинаковые артикулы, но разные бренды, а во-вторых, у клиента может быть 2 запчасти - одна б/у, вторая новая, а артикулы одинаковые. А в этом и была загвоздка скорости. Просто на ПК у меня 4 Гб оперативки, проверяет на повтор нормально (во всяком случае до 100 тыс. позиций), а на этом хостинге видимо мне меньше выделяется, а база-то растет с каждой итерацией, соответственно, время на поиск начинает расти, если оперативки не хватает. Убрал эту проверку, прайс 75 тыс. позиций загрузился за 2 минуты, а на 500 тыс. за 18 минут. А полгода назад, я вспомнил, когда тестировал этот обработчик на другом хостинге, эту проверку я тоже не делал. Возможно на выделенном сервере работало бы нормально, но, опять-таки, если 100 человек будут грузить одновременно, то все равно начнет тормозить. Да и не нужна эта проверка.
Ни на одном хостинге 4 гига опнративы не выделяется. Максимум что я видел 512 метров. Твоя задача решается постановкой в "очередь". Есть еще вариант второго сервера, который выполняет поставленые в очередь задачи, первый только отдает контент юзерам Добавлено спустя 4 минуты 55 секунд: Тупняк при проверке у тебя из за проверки по одному. Бери по 1000-10000 сразу и проверяй. Артикул в индекс, все будет шустро