2017-02-03 17 views
0

私は約400万行のテーブルを持っていて、各行は30個の列で構成されています。それは毎日新しい行でテーブルが大きくなったり大きくなったりするはずです。Navicatメッセージ - メモリ不足

私は250万人でnavicatブラウザのすべてのデータを見たいと思っていますが、私の意見では、サーバーリソースとは何の関係もありません。

また、私は接続を右クリックしようとしました - > SQLファイルを実行し、それは正常に実行されますが、データを表示しません。

+0

途中で取得しているサードパーティのツールの別の例ですか? –

+0

@RickJames sryが、あなたの質問を理解できませんか? – MPetrovic

+1

_Probably_ "mysql"コマンドラインツールを使用してもこの問題は発生しません。アプリケーションとMySQLの間のNavicatや他のサードパーティのパッケージには、ストレスがかかるまで表示されないという制限がある傾向があります。 4M行をフェッチすることはストレスです。 –

答えて

0

大きなテーブルがあります。結果セットとしてテーブルの内容全体を取得しようとすると、クライアントソフトウェア(Navicat)がそれを保持するのに十分なRAMを取得できないようです。

SQLの目的は、非常に大きなテーブル、特にRAMに収まらないテーブルの処理を許可することです。したがって、テーブル全体をクライアントにするのは意味がありません。

は何らかの理由でにテーブル全体を取得する必要がある場合は、mysqldumpコマンドラインファイルを試してファイルに入れてください。

クライアントプログラムからのクエリの最後にLIMIT 1000句などを使用することができます。

+0

Navicatのすべてのデータを読み込みたいのですが、LIMIT1milionまたはLIMIT 1000 OFFSET 1000を使用している場合、クライアントのNavicatの問題は解決しません。常に同じ結果が表示されるため、次の1000行を移動できません。クエリでは正常に動作しますが、ブラウザーにはすべてのデータをロードできません – MPetrovic

+0

「私はピックアップトラックに14トンの石炭を運ぶ必要がありますが、石炭をトラックに積み込むたびにタイヤが破裂します。どんな種類のタイヤが爆発しないか教えてください。あなたは、非常に大きな結果セットを中規模のプログラムに入れようとしています。あなたはそれをすることはできません。 –

+0

データの品質がわからない場合は、アプリケーションを構築する目的は何ですか?物理的な仕事をやって、500kで500kを取り戻す目的は何ですか?すべてのデータを見るための通常のやり方と、データの正規化に必要なやり方を見極める方法が必要です – MPetrovic