Как правильно отправлять джейсон с сервера при большом количестве данных?
Добавлять все в единый массив, а потом его превращать в json
Отдельно готовьте данные, отдельно их отправляйте. Тогда не будет возникать такой проблемы.
$result = ['data' => []];
while($row = $result->fetch_assoc()) {
     $result['data'][] = $row;
}
$result['state' => 'ok'];
...
echo json_encode($result, JSON_UNESCAPED_UNICODE);