0

mysql データベースに非常に大きなテーブル (数百万行) があります。各行には、フィールドとして作成された日付があります。2011 年から今日までの行を抽出したいと思います。私が使用しているクエリは次のようになります。

select data1, data1, data3, data4, data5, data6 
  from db.table 
 where date(data3) between '2011-10-01' and '2012-08-06'

ブラウザーがクラッシュする前に、mySQL クエリ ブラウザーで約 300 万行がフェッチされ、Glib エラーが発生します (gmem.c:173 は 50080000 バイトの割り当てに失敗しました。中止します。)

単にメモリが足りないからですか?誰でも提案できるトリックやパフォーマンスを向上させるクエリはありますか?

4

1 に答える 1

0

使用しているクエリブラウザは、数百万行の結果セット全体をRAMにフェッチしているようです。何らかの理由でこれを行う必要がある場合は、より多くのRAMが必要になります。

問題はこれです:この結果セットで何をしていますか?ファイルに保存していますか?その場合は、MySQLブラウザ機能を使用してそれを行います。結果セット全体をRAMにダウンロードするほど多くのメモリは必要ありません。

編集:MySQLクエリブラウザはMySQL/Oracleによって廃止されています。行をCSV(Excel)ファイルに抽出する他のプログラムを見つける必要があります。一部のツールでは、必要に応じてXLSファイルも作成されます。

正しい質問と回答は次のとおりです。

MySQLクエリ結果をCSV形式で出力するにはどうすればよいですか?

于 2012-08-06T15:53:39.843 に答える