![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
とあるテーブルのレコード数は、全部で28レコードあります。
このテーブルにはインデックスを張っておらず、シーケンシャルスキャンでDBよりSELECTしています。
通常にシステムを運用する上では問題ないのですが、負荷試験などで同時接続数を50などにしループでDBにアクセスさせるとき、その他の4000万レコード程度あるテーブルをSELECTしてくるのは0.00xxx秒で行えるのに対し、この28レコードしかないテーブルからSELECTしてくる際は、遅い場合で0.xx秒もかかってしまいます。
この28レコードしかないテーブルにインデックスを張っても、レコード数が少なすぎてまったく意味がありませんでした。
ちなみにこのレコードへは下記のようなSELECT文を発行しています
SELECT xxx,xxx,xxx FROM xxxx where カラム1 = aaaa AND カラム2 IN (bbb,ccc) AND カラム3 = ddd;
このレコードのSELECT文を高速化させるには、どのような手段があるでしょうか。
お手数ですがご教示いただけますと幸いでございます。
DBはPostgreSQL、PHPのWebアプリケーションよりDBにアクセスしています。
No.2ベストアンサー
- 回答日時:
(遅い場合で0.xx秒)が遅いのかどうかは不明ですが・・
4000万レコード程度あるテーブルのクエリーが0.00xxx秒というのは
どういうSQLでしょうか
またどうやって測ったのでしょうか?EXPLAIN ANALYZEでしょうか?
28件のTABLEへはどういったインデックスを張ったのでしょうか?
条件にある主キーカラムにインデックスを張っていますでしょうか。
主キーカラム以外の条件を取り除くか、もしくはすべての条件カラムを含む
複合索引を張って検索を行ってみてはどうでしょうか。^^
#EXPLAINでカラム2のIN関数でインデックスを使用しない事があれば
#(カラム2=bbb OR カラム2=ccc)に置き換えてしてみて下さい。
EXPLAIN ANALYZEでも図りましたし、実際運用していて、どのSQLにどれくらいのセレクト時間がかかるか、すべてログに残していて、それを見て発見いたしました。
条件にある主キーカラムにインデックスを張ってみましたが、やはり変わりありませんでした。。
複合索引を張ってみましたが、それも効果はないようです、、、
もう少し考えて見ます、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DBから日付順に指定件数の削除...
-
COPY時のtimestamp型について
-
0の除算
-
長いSQL文を実行するには?
-
■一番最初に値が入っている(Nul...
-
Excel 2019 のピボットテーブル...
-
Access テキスト型に対する指定...
-
Accessでテーブル名やクエリ名...
-
エクセルVBAで5行目からオート...
-
Accessでテーブルの値をテキス...
-
Accessのフィールド数が255しか...
-
ACCESSで和暦を西暦に・・・
-
Accessの追加クエリで既存のテ...
-
セルの右クリックで出る項目を...
-
Accessでコードを入れると名前...
-
INSERT INTO ステートメントに...
-
ACCESSのクエリで集計で、先頭...
-
Accessでテーブルからテーブル...
-
Oracleのビュー作成時に「指定...
-
Accessで連続データってできま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
列が存在しないと言われる
-
0の除算
-
constraint と index の違い
-
INSERTできるレコード数を制限...
-
PostgreSQLで表結合+DELETEしたい
-
長いSQL文を実行するには?
-
DBから日付順に指定件数の削除...
-
alter tableすると、処理が止ま...
-
COPY時のtimestamp型について
-
動的に生成したカラムを使ったF...
-
■一番最初に値が入っている(Nul...
-
postgreSQLの日付を変数にする...
-
複数キーワードでのあいまい検索
-
Null値を無視してユニークにしたい
-
version7,version8 の型の扱い
-
大量データを更新したら、処理...
-
DB2 「既存カラムへのnot null...
-
PostgreSQLで、元テーブルをコ...
-
インデックスの張り方について
-
INSERTできない
おすすめ情報