Чтобы добавить к ответу Бердира, в) можно было бы профилировать использование памяти и выяснить, что потребляет память, и если есть способ оптимизировать или кэшировать ее вывод.
Установите devel и включите ведение журнала производительности, он скажет вам, какие запросы и модули занимают больше всего памяти. Вы также можете использовать xdebug и утилиту cachegrind для углубленной диагностики, но для ее установки потребуется некоторое время.
Если вы урежете таблицы базы данных, проблема просто вернется, когда больше заполнит эти таблицы.
Лучше всего просто увеличить предел памяти PHP.