10:16初めまして、最近SQLをかじり始めたぺーぺーです。効率の悪いSELECT文しか書けずに困っています。レコードに含まれるid(=3)を拾ってきたいのですが、自分の頭では副問い合わせを使う方法か、ソートを使う方法しか思いつきません。回答No.2noname#249320数十万件だと毎回実行するにはなかなか厳しい感じですね。インデックスを張ってもあまり有効に働かないみたいですね。そこから参照するようにしてはどうでしょうか。上記のテーブルをトリガを利用して書き換えればよいと思います。副問い合わせやソートのやり方でもよいと思いますよ。21:31なるほどと思いました。nameとversionの最大値の組み合わせでの参照は頻繁に行われるため、試しに参照用のテーブルを作成して実行計画を見てみました。速度を計測してみたところレスポンスは副問い合わせを使ったときの方が早いようです(レコード3万件で実験)。テーブルの結合に時間がかかってしまってることが原因ではないかと考えています。今回はたまたまテーブル結合が無いケースでしたが、もともとのSELECT文でテーブル結合をする必要がある場合には、参照用のテーブルを作ったほうが早いかもしれませんね。何度もアドバイスをくださってありがとうございます。回答No.1noname#249320基本的には副問い合わせやソートはコストのかかる処理です。数百万にもなった場合に実際に体感できる負荷として顕在化してきます。書かれてある副問い合わせやソートを使っても全く問題ないと思います。MAX関数で最大値を求めようがソートで並び替えをしようがコストはほとんどかかりません。状況によって使い分ければよいと思います。使って以下のようにもかけます。14:47お返事ありがとうございます。お返事をいただいて真っ先に思いましたのは、「SELECT文を書く場合、絞り込みの順番を意識することがすごく重要だ」ということです。絞込みやすい順にwhere句を記述していくとそれだけでパフォーマンスが上がるんですね。DBエンジニアとしては当たり前の知識なのでしょうが、勉強になりました。「nameの絞込み自体のコストが大きい」ことは確かで、それが今回のケースでは問題になりそうだと感じました。メインの文と副問い合わせ文の両方でnameで絞込みをかけなければいけなくなっているので。格納されるデータ量ですが、詳しくはわかりませんが数十万件くらいにはなる予定です。コンピューターデータベースPostgreSQL関連するQ&Aselect文の書き方で分からない所があります先人の書いたPHPを解析しています。PostgresSQLとのやり取りをしている記述で、どうしても分からないところがあるので、教えてください。fromでyoとmbsと書かれた部分があります。直前のinについてもなんとなくは理解できますが、ネットを調べても出てきません。古い記述なので、最近のものには対応していないのかもしれません。どなたかご教示願えませんか。このような場合どのように調べれば良いでしょうか。windows2000です。以下のようなテーブルがあります。id,sortにインデックスが貼ってあります。このSQL文は間違っているでしょうか。降順にソートしたいのですが。すればちゃんと動作するのか、ご教授お願い致します。カラムIDはPRIMARYを指定しています。カラムScoreはインデックスを作成しています。このテーブルで、「IDと教科」を指定したときに、以下の2つのデータを得たいと思っています。具体例としては、例えば「ID=10001、教科=国語」を指定したときに、「山田、3人中1位」というような情報が得たいです。(「ID=10001、教科=英語」のようなおかしな組み合わせは指定しないようになっています。以下のようにして名前と順位を得る事が出来ました。(2)は、以下のようにして特定の教科のレコード数を得る事が出来ました。実際にはレコード数が大量にあり、頻繁にこの検索を実行する予定なので、負荷が心配です。出来るだけサーバーの負荷を減らすために、1回のSELECT文の実行で(1)と(2)をどちらも実現できるような方法はないでしょうか。このテーブルでインデックスを作成しているのはIDとScoreのみですが、より負荷を減らすにはKyoukaにもインデックスを作成した方が良いでしょうか。質問させていただきます。無効なので、困っています。よければ、ほかの方法はないものでしょうか?締切済みその他(データベース)SELECT文の二段重ね次のSQL文を実行します。SQL文法としては誤ってますが、成功したとします。"ふー"が得られます。これを一つのSQLite3のselect文で実現できないでしょうか。カテゴリ選択にSQLiteが無いのは、人気が無いからですかね。Mysqlのバージョンは5.0.21です。NULL列は?ある人に、こんなSQLを教えてもらいました。"res_no"”のところです。これについて、ググッて見たのですが、明確な説明が見つかりませんでした。これって、SQLの隠し機能なのですか?ベストアンサーPostgreSQLselect文について現在、"user"というテーブルに"id"と"date(datetime)"という項目があり、その"date"にあるデータの中から月を指定して抽出したくて以下ようなSQL文を書いたのですがうまくいきません。mysql5.0です。select文の書き方についてsybaseのselect文の書き方についてご教授お願いします。エラーになってしまいます。近くに、構文エラーがあります。近くに、構文エラーがあります。近くに、構文エラーがあります。Accsess上ではちゃんと取れることを確認できました。締切済みその他(データベース)関連キーワードコンテンツ注目のQ&A「LOVE」が入った曲といえば?もはやマイナンバーカードは「無用の長物」?失恋しました。誰かの疑問に誰かが答えることでQ&Aが出来上がり、後で見に来たたくさんの人の悩みの解決に役立てられています。