多くのデータベースで一般的な「インデックス ヒント」機能について質問していると仮定しますが、PostgreSQL にはそのような機能はありません。これは PostgreSQL チームによる意図的な決定です。その理由と何ができるかの概要については、ここをご覧ください。基本的な理由は、これはデータが変更されるとより多くの問題を引き起こす傾向にあるパフォーマンス最適化方法であり、PostgreSQL のオプティマイザーは統計に基づいて計画を再評価できるためです。言い換えれば、現在は優れたクエリ プランであっても、常に優れたクエリ プランであるとは限らず、インデックス ヒントにより特定のクエリ プランが強制されます。
非常に粗雑なツールですが、テスト目的で、enable_seqscan および enable_indexscan パラメータを使用できます。見る: ###
enable_seqscan
enable_indexscan
パラメータ
は、継続的な運用での使用を目的としたものではありません。クエリ プランの選択で問題が発生した場合は、クエリ パフォーマンスの問題の追跡に関するドキュメントを参照してください。 enable_ パラメータを設定してそのまま放置しないでください。 インデックスを使用する特別な理由がない限り、Postgres はおそらく正しい選択をするでしょう。なぜ?
インデックスを使用する特別な理由がない限り、Postgres はおそらく正しい選択をするでしょう。なぜ?
小さなテーブルの場合は、順次スキャンの方が高速です。
多くのデータベースで一般的な「インデックス ヒント」機能について質問していると仮定しますが、PostgreSQL にはそのような機能はありません。これは PostgreSQL チームによる意図的な決定です。その理由と何ができるかの概要については、ここをご覧ください。基本的な理由は、これはデータが変更されるとより多くの問題を引き起こす傾向にあるパフォーマンス最適化方法であり、PostgreSQL のオプティマイザーは統計に基づいて計画を再評価できるためです。言い換えれば、現在は優れたクエリ プランであっても、常に優れたクエリ プランであるとは限らず、インデックス ヒントにより特定のクエリ プランが強制されます。
非常に粗雑なツールですが、テスト目的で、
enable_seqscan
およびenable_indexscan
パラメータを使用できます。見る: ###パラメータ
は、継続的な運用での使用を目的としたものではありません。クエリ プランの選択で問題が発生した場合は、クエリ パフォーマンスの問題の追跡に関するドキュメントを参照してください。 enable_ パラメータを設定してそのまま放置しないでください。
インデックスを使用する特別な理由がない限り、Postgres はおそらく正しい選択をするでしょう。なぜ?
小さなテーブルの場合は、順次スキャンの方が高速です。
データ型が一致しない場合、Postgres はインデックスを使用しません。場合によっては、適切な変換を含める必要があります。-
プラン設定が問題を引き起こしている可能性があります。 -
- この古いニュースグループの投稿
も参照してください。