Как оптимизировать PDO для работы с MySql таблицами в 45 000 000 строк?

У меня есть таблица в 45млн. строк. Мне ее нужно разбить по некоторому полю в котором содержится год внесения записи (всего там примерно 6-7 лет, не помню точно, количество записей на один год всегда разное). Делаю я все это с помощью PDO, и памяти не хватает. Все хаки которые нарыл в интернете не помогли. php.ini уже настраивал, и со стороны скрипта, и со стороны собственно конфига. Можете что-то подсказать в плане решения подобной проблемы? Увеличить количество памяти я к сожалению не имею возможности, максимум что - могу попробовать поднять memcached, но не уверен что это лучшая идея, с одной строкой ответа приходит довольно много информации. С буферизацией запросов тоже пробовал химичить, но
->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false)
не помогает. Подскажите, как вы поступаете в таких случаях?
  • Вопрос задан
  • 3005 просмотров
Решения вопроса 1
uakoB
@uakoB Автор вопроса
курсор не получается сделать потому что насколько я понял в драйвере MySql недоступен курсор. ну, по крайней мере так писали в этих ваших интернетах)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@s1dney
Вы что, пытаетесь селектом запросить все 45кк строк, что там памяти не хватает?
Используйте limit и курсор.
Ответ написан
Комментировать
disc
@disc
веб-разработчик
А можете показать запрос как вы это делаете?
Возможно я чего-то не понял в вопросе, но вам что действительно надо одновременно выводить 45 млн строк на страницу?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы