AFAIK Некоторые реализации mysqli резервируют столько же памяти, сколько максимальный размер столбца. Таким образом, даже если у вас есть 1 КБ в текстовом поле, оно зарезервирует 64 КБ, а не 1.
Я не очень хорош в этом, но вы можете попробовать mysqli_unbuffered_query (если есть)
Или, как лучший выбор - выберите только те строки и столбцы, которые вам нужны на конкретной странице