Não é diretamente relacionado ao PHP7. O problema é devido ao novo mysqlnd driver, então você pode ter o mesmo problema mesmo com o PHP 5.x também. Na verdade, é uma correção de bug, porque mesmo antes de a memória ainda ser alocada, mas não contava para memory_limit .
Para evitar um problema de memória, você deve usar consultas sem buffer para os grandes conjuntos de resultados.
Portanto, para a consulta que espera um grande conjunto de dados, defina a configuração adequada como esta:
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
Para leitura adicional, tenho uma explicação decente no meu tutorial PDO , graças a Nikic, cujo feedback crítico foi inestimável.