• ベストアンサー

大量のデータからの検索

データ量が膨大にある場合。 例:20万件以上のレコード 検索するフィールドにインデックスをきかせても Web側で表示するときに時間がかかりすぎてタイムアウトになってしまいます。。 何かいい方法はありませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • iiikkk
  • ベストアンサー率37% (92/247)
回答No.2

PostgresSQLはタイムアウトをとらない?みたいなので、PHPでタイムアウトをとっているのか、ブラウザに表示のほうで時間がかかっているのでしょう。 set_time_limit(300); スクリプトが実行可能な秒数を設定します を追加してみてはどうでしょうか。 もしくはPHP.INIの内容を変更しても良いでしょう。 300秒は仮の値です、適当に合わせてください 0にすると時間制限なしです。

参考URL:
http://php.s3.to/man/function.set-time-limit.html
aiurai54
質問者

お礼

ありがとうございます♪うまくいきました。

その他の回答 (1)

  • iiikkk
  • ベストアンサー率37% (92/247)
回答No.1

ブラウザに表示するシステムでしょうか? おそらく、 データベースの取得自体にはさほど時間はかかっていなくて、ブラウザに表示するときに時間がかかっているのではないでしょうか。 その辺りの補足お願いします。 Webで表示とはどいうことか? 開発言語はなにか? 何に時間かかっているか?

aiurai54
質問者

補足

開発言語はPHPです。 データベースからあるイベントのものだけを取得して、 その取得したものをファイルに書き込んでいきます。 ファイルに書き込んだものを集計して、 その結果を表示しています。 集計はpregで集計し、文字列とかではなく正規表現で ある数字があらわれたときにカウントするような処理です。 取得数がすくない場合はうまくいくのですが、、、

関連するQ&A

  • SQLでのデータ検索方法

    以下のようにデータが格納されている テーブルAがすでにあります。  id  in_time  out_time  1         11:10  1   10:30  1         10:15  3   09:50  1   09:30  1         09:00  1   08:30  2         08:10  1         07:50  2   07:40  1   07:30 ここでin_timeとout_timeの範囲が指定されたとき 範囲内でidごとにin_timeとout_timeがセットにな っているデータのみ抽出したいのです。 例えば in_time:7:00~10:20 out_time:8:00~11:30 と指定されたとき、検索結果を  id  in_time  out_time  1         10:15  1   09:30  1         09:00  1   08:30  2         08:10  2   07:40 と表示したいのです。 プログラムで1レコードずつ処理するしかない と思っているのですが、SQLで上記のような結果 を取得する方法はあるのでしょうか。 環境は、 RHEL 5 postgesql 8.1.9 です。

  • ACCESS2000での大量データ処理

    CSVファイルの情報をACCESS2000にインポートして集計処理をしたいと考えてます。 CSVファイルの構成は、20フィールド(全て文字属性)で1レコード、1400レコードで1件となっております。(この仕様を変更する事は出来ないのが条件です。) 言い直せば、1名分の情報は1400レコードあるとなります。但し、集計に使用する情報はその内の400レコードであり、1000レコードは不要です。 処理する人数は3万件ぐらいあります。 (1)1400レコード×3万件の情報をインポート出来るのでしょうか?    テーブル制限の1Gを超えないのでしょうか(テーブルサイズの参照方法も?) (2)CSVをインポートする際に、必要なフィールド400だけインポートできるVBAはあるのでしょうか?  必要不要の判別フィールドはあります。 (3)インポート後、ACCESSで400項目を1レコードにする事はできないか?255以上のフィールドのテールを処理する方法はあるのでしょうか? (4)このような大量集計を可能にするには、みなさんは何を使用しているのでしょうか? よろしくお願いいたします。

  • Access2003でフィールドのデータがずれる

    WindowsXPを使用しています。 時々、100件以上あるレコードの内1件だけ、 データがおかしくなります。 具体的には、フィールド2に入力してあったデータが、 フィールド4と6に入っていたり、 フィールド3に入力していたデータが、 フィールド8,9,10に1文字ずつ分割して入っていたりします。 バックアップデータで確認したところ、 1ヶ月程前はそのレコードも正しく入力されていたため、 入力ミスではないと思います。 データが変になる原因がわかりません。 原因がお解かりになられる方、ご回答を宜しくお願いいたします。

  • 検索性能を向上させるには

    SQL Server 6.5を使っています。 レコードが100万件あるデータベースで varchar(80)の項目を中間一致で検索しているのですが 大抵タイムアウトになってしまいます。 このような場合に検索性能を向上させるにはどうすればいいでしょうか?

  • Access2000のデータ容量について

    Access2000のデータ容量は1GBまでなのでしょうか。 1GBということであれば、データ件数は約何件ぐらいになるでしょうか? 例: フィールド項目      9個     データ型     数値型     フィールドサイズ    長整数型           上記の場合だとしたらレコード件数は約何件ぐらいまででしょうか。 その他 1GBはフロッピィー何枚分ですか。 よろしくお願いします。

  • ネットでの検索画面について

    私は良くネットで図書館の資料検索を利用しています。図書館の検索に限りませんが、いつも疑問に思うのですが検索結果の表示件数が例として10.25、50、100件など選択できるようになっている場合、初期設定が多くの場合一番少ない10件となっています。検索結果が10件以上ある場合も多く、その都度次の画面を表示させる操作が必要になります。私としては初期設定を50件とかにしておいてもらい画面スクロールだけで検索結果を見ることができるほうが使い勝手がいいと思います。 ちなみに、私の住んでいる県内の各図書館の表示件数を見てみたらほとんどの図書館で初期設定10件となっていました。しかし、中には初期設定が50件という図書館のウエブページもありました。 なぜ多くのウエブページの製作者は10件を初期設定としているのか疑問です。ウエブページ製作者の立場から教えていただけると有難いと思います。 データ量が多くなり表示に時間がかかるからなどということは実際上問題にならないと思いますが。

    • 締切済み
    • CSS
  • レコードの検索・移動

    こんにちは。 先日、レコードの検索・移動で、お尋ねしたのですが、 やはり、解決できません。Q&Aで、"レコード" "検索"で調べましたが、 ヒットした53件の中には、ちょうどいいのがありませんでした。 もう一度、質問させていただきたいと思います。お願いします。Access2000です。 現在あるフォームを利用して、 フォームヘッダにテキストボックスを作成し、 その中に、[ID]の番号を入力したら、検索して、 その番号のレコードに移動し、欲を言えば、 その後に、[フィールド1]にカーソルが移動して欲しいのです。 [ID]のデータ型は、テーブルのデザインビューにて、 オートナンバー型でなく、数値型にしています。 フィールドサイズは、整数型。書式:数値、小数点以下桁数:0、 値要求:いいえ、インデックス:はい(重複なし)。です。 お願いできませんでしょうか?

  • WORD2003差込印刷のデータソースについて

    WORD2003で差込印刷をしたいとおもいます。 データソースはテキストですが、一件目より データレコードです。 フィールドレコードが無いため、 一件目がフールドレコードとなり、 宛先は二件目からのデータになってしまいます。 対処方法有りますか?。 テキストデータは毎回編集するのは大変で、 WORD側で回避したいのですが、良い方法有りますか?。 よろしくお願いします。

  • Access データアクセスページについて

    Accessでデータアクセスページを作ろうとしています。 利用目的は、社内資産の管理なのですが、レコード数が1000件以上あるので、膨大なものです。 それで、単票形式でも表形式でもどちらのデータアクセスページでもデータを探すのが大変です。 なので、検索機能を作りたいのですが、どのようにすればいいのでしょうか? そして、検索した後、その資産を貸し出ししたりしたいので貸し出し管理をしたいのですが、それもどのようにすればいいでしょうか? 皆様教えてください。

  • ACCESS 重複データを1つだけ表示したい(初心者です)

    ACCESSで複数のフィールドに全く同じレコードが複数存在します (例) フィールド1  フィールド2  フィールド3 愛知      田中      12 愛知      田中      12 愛知      田中      12 三重      山本      23 三重      山本      23 岐阜      鈴木      33 岐阜      鈴木      33 もともと他のデーターベースからCSVで落としたものをインポートしているので、データの存在自体はどうしようもありませんが、これらの重複しているデータを1件だけ表示したいのです。つまり (例) フィールド1  フィールド2  フィールド3 愛知      田中      12 三重      山本      23 岐阜      鈴木      33 どのようにすればよいでしょうか。