Табличка в 24M записей, несколько индексов (в том числе и на одни и те же поля). Раз в сутки скрипт 1200 раз подряд (без пауз) делает:
1. select * from mytable where (почти все атрибуты); такой одиночный запрос выполняется около секунды
2. insert в таблицу и автоматическое обновление индексов. Одиночный запрос выполняется быстро - пара мс.
В итоге, с ростом БД, данные начали теряться и дублироваться.
Свободной памяти осталось 20 мегабайт (не ржать, только заметил). Память добавлю, но это не решение. Вижу такие (временные) решения:
1. Добавить sleep в цикл записи (он не требует скорости).
2. Перейти на PgSQL.
3. (Клиент вряд ли согласится, но я планирую). Переписать схему, денормализовать.
Нужен совет.
Перемещено true_admin из development