nw
Новичок
Большая выборка
Есть табличка, там что-то около 55 тыс записей.
Нужно перебрать в цикле каждую запись.
Схема по которой работаю обычна:
Затем форичем (как вариант for) перебираю резалт. Так вот если LIMIT убрать, то до конца скрипт не дорабатывает (тайм_лимит php должно хватать).
Т.е. примерно на 30-ти тысячной итерации глохнет (несколько секунд работы). Это просто при переборе, никаких операций внутри цикла не производится (кроме echo номера каждой тысячной итерации).
Вопрос:
Как перебрать все записи? В чём подвох может быть? Перебрать нужно в одном скрипте.
Пробовал вариант - резалт перебирать в двух циклах (т.е. первый резалт с LIMIT 0, 27000, второй резалт LIMIT 27001,27000) ) с free_result() после каждого перебора. В этом случае первые 27 тыс отрабатывал нормально, а во втором - только тысячи 3 (т.е. в итоге те же 30).
А то что-то я глючу
-~{}~ 17.12.07 19:09:
Не думаю что дело во фреймворке, но используется CodeIgniter
Есть табличка, там что-то около 55 тыс записей.
Нужно перебрать в цикле каждую запись.
Схема по которой работаю обычна:
PHP:
$sql = "SELECT price, date, count, code, company_id FROM goods_prices_tbl WHERE price >0 ORDER BY date DESC LIMIT 10000";
Т.е. примерно на 30-ти тысячной итерации глохнет (несколько секунд работы). Это просто при переборе, никаких операций внутри цикла не производится (кроме echo номера каждой тысячной итерации).
Вопрос:
Как перебрать все записи? В чём подвох может быть? Перебрать нужно в одном скрипте.
Пробовал вариант - резалт перебирать в двух циклах (т.е. первый резалт с LIMIT 0, 27000, второй резалт LIMIT 27001,27000) ) с free_result() после каждого перебора. В этом случае первые 27 тыс отрабатывал нормально, а во втором - только тысячи 3 (т.е. в итоге те же 30).
А то что-то я глючу

-~{}~ 17.12.07 19:09:
Не думаю что дело во фреймворке, но используется CodeIgniter