Вопрос
Мой вопрос в том, есть ли какие-либо ограничения на количество строк, возвращаемых с помощью запроса, используя Mysql или Laravel?
Во-первых, я использую Laravel 5.2, и я пытаюсь извлечь мои данные из моей таблицы журналов, которая недавно ударила по 10k строкам. Теперь с тех пор (или примерно в это время) обычный синтаксис laravel для извлечения данных не работает
Синтаксис
$logs = Log::all()
return $logs; //This is then handled by Vue.js on the client side
Он работал нормально, но он ничего не возвращает, ничего не отображается в chrome devtools, просто пустая строка.
Я только недавно был в базе данных и заметил, что информация по-прежнему добавляется в журналы каждый день, поэтому мой код работает все еще, но когда я пытаюсь получить информацию, чтобы показать ее на стороне клиента, она не работает.
Что я думаю, проблема
Что заставило меня поверить, что Laravel или MySQL имеют какие-то ограничения на количество возвращаемых строк? Я не уверен, как проверить мои ограничения запросов, а что нет.
Что я наделал
Я уже просмотрел stackoverflow для ответа, но я не нашел ничего полезного, я столкнулся с кем-то, говорящим, что 9 миллионов строк в порядке, если таблица правильно проиндексирована и т. Д.
Я задал вопрос раньше, но все ответы и предложения были неверными, поэтому, надеюсь, эта новая найденная информация может пролить свет на проблему.
Проблема закончилась тем, что мой запрос Log::all();
был отброшен на 1,1 Мб информации, в то время как мой лимит сервера по запросам был взломан на 1,1 МБ. Два человека помогли мне определить и решить проблему.
@RobertoGeuke:
«Можете ли вы попытаться найти последние 100 строк с
Log::orderBy('id', 'desc')->take(100)->get();
и посмотреть, работает ли это?Вы можете увеличить свой метод
take()
с шагом в 1000 и увидеть, когда он сработает. Это даст предел число, возможно, это поможет ».
Это помогло мне пояснить, что мой запрос запрашивал слишком много информации из базы данных, но я все еще не был уверен, что это ограничение строки или ограничение памяти.
@SergChernata:
«Вероятно, вы просто нажмете ограничение памяти: Laravel Eloquent ORM максимальные строки, которые он может извлечь
[Увеличить лимиты памяти?] Существует несколько способов: как увеличить ограничение памяти для PHP более чем на 2 ГБ? "
Это помогло мне указать на проблему, а также дал мне возможность увеличить ограничение памяти.