2017-01-10 2 views
2

質問リミット、Laravel

私の質問は、MySQLやLaravelのいずれかを使用して、クエリで返される行の量のいずれかの制限がありますか?

まず

を作業データイマイチを取得するために、通常のlaravel構文を今すぐそれ以来(またはその頃)ImはLaravel 5.2を使用して、私は最近、10K行の上にヒットした私のログテーブルから自分のデータを取得しようとしています

構文

$logs = Log::all()

return $logs; //This is then handled by Vue.js on the client side

それは、何をdoesntのない今、正常に動作するために使用クロムdevtoolsにエラーが表示されず、空の文字列だけが返されます。

私はまだデータベースにいて、情報が毎日ログに追加されているので、コードはまだ動作していますが、クライアント側で表示するために情報を取得しようとすると、それは機能しません。

私はこの問題はLaravelやMySQLが取り出される行の量の制限のいくつかの並べ替えを持っていると信じて私をリードしてい

は何だと思いますか?私のクエリの制限をチェックする方法とは何かを分からない。私はすでに答えをStackOverflowの上で見てきましたが、私は便利なものを見つけていませんでした、私9万行は大丈夫限りであることを言って、誰かに遭遇しました

をやった

テーブルは正しく索引付けされています。

私は以前に質問しましたが、すべての回答と提案が間違っていたので、この新しい情報が問題を明らかにしてくれるはずです。

+0

chrome devtoolにはエラーは表示されませんが、Webサーバーのログのように他の場所はどうですか? – apokryfos

+1

'Log :: orderBy( '​​id'、 'desc') - > take(100) - > get();で最後の100行をフェッチしてその動作を確認できますか? –

+0

@apokryfos Iveはlaravelのログをチェックしましたが、Webサーバーのログがどこにあるのかわかりません –

答えて

0

問題は、私のクエリLog::all();が1.1mbの情報を引き戻していたのに対し、私のサーバの制限は1.1mbでした。 2人で私が問題の特定と解決に役立ちました。

@RobertoGeuke:

「あなたはLog::orderBy('id', 'desc')->take(100)->get();と最後の100行をフェッチし、それが動作するかどうかを確認しようとすることができます

あなたが段階的に1000年に あなたtake()方法を向上させ、ときに見ることができますか?失敗するかもしれません。 に数値を指定すると、多分役立つでしょう。 "

これは、私のクエリがデータベースから大量の情報を要求していることを明確にするのに役立ちましたが、それでも行制限かメモリ制限かどうかはわかりませんでした。

@SergChernata:

"あなたはおそらくメモリの制限に達している: Laravel Eloquent ORM maximum rows it could retrieve

[メモリ制限を増やす?]いくつかの方法があります: How to increase memory limit for PHP over 2GB?"

これは、私が問題を突き止めるのを助け、メモリの制限を増やすオプションも与えました。

関連する問題