É difícil dar uma resposta específica sem ver seu código específico. Dito isto, estruturas de dados PHP como arrays são associativas. Os designers do PHP intencionalmente fizeram uma troca para usar RAM extra para economizar tempo no acesso ao array.
Você pode economizar memória de duas maneiras. Por um lado, você pode buscar cada linha do seu conjunto de resultados como um numérico, em vez de uma matriz associativa. Leia isso. http://php.net/manual/en/mysqli-result .fetch-array.php
Por outro lado, o PHP absorve todas as linhas em seu conjunto de resultados de uma só vez, a menos que você diga que não. Esta operação slurp consome muita RAM. Você não precisa disso se estiver planejando processar seu grande conjunto de resultados uma linha por vez. Você precisa de uma consulta sem buffer fazer isso. Leia isto:http://php.net/manual/en/mysqlinfo. conceitos.buffering.php