Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Misha v.3 20.06.2005 17:26 / 20.06.2005 17:38
каталог 17000 строки
файлик маааленькийэто как-то не стыкуется друг с другом. думаю вы выбрали неверный путь для решения вашей задачи, скорее всего парсер тут не подойдет.
действительно можно 17000 значений через запятую перечислить в sql-запросеу MySQL кажется можно (сверьтесь с его документацией). у меня на нескольких тысячах это нормально работает. десятки тысяч я не проверял. у оракла ограничение 1000.
и это будет работать лучше чем через меню?я уверен, что да (почитайте про DELETE в документации по mysql)
А если 50 000, 100 000 ?думаю и в этом случае не надо делать удаление по одной записи в menu. в подобном случае надо подготовить данные, и удалять например в одном запросе по 1000 записей. sql запросов будет меньше. работать это будет быстрее.
2. ^memory.compact[] очищает память от неиспользуемых переменных. Тогда почему нужно его ставить внутри цикла ^t.menu{}, если там все переменные используются, и освобождать память не от чего ?там есть неявные переменные. т.е. подготовился текст sql запроса, выполнился запрос. этот текст больше не нужен. но память он занимает. есть переводы строк в вашем menu. это 17тыс на 2 байта (возможно больше) + сколько - то байтов на язык (taint). парсер тоже это запоминает, и compact-ом это не лечится.
^if($ff.[s^tc.line[]] ne none){...}можно убрать, если вначале сделать $tc[^tc.select($ff.[s^tc.line[]] ne none)] и не придется в каждой из 17000 строк делать эти проверки (т.е. минус 17000 * количество строк в $tc проверок)