共有
  • 記事へのコメント36

    • 注目コメント
    • 新着コメント
    その他
    オーナーコメントを固定しています
    ohbarye
    オーナー ohbarye 記事中部の count(*) に limitつけて全件走査を防げるかのように書いてたのはSQLの記述ミスでしたので修正しました。指摘ありがとうございます id:shunyy

    2024/10/11 リンク

    その他
    daishi_n
    daishi_n 現役の頃はCOUNT(*) はあんまり使わんようにしてたなぁ。インデックスが使えなくて困ることも多いし

    2024/10/13 リンク

    その他
    tmatsuu
    tmatsuu 2件以上ならLIMITかもしれないが、1件あるかどうかを確認する実装なら自分はEXISTSを使っちゃうね。SELECT EXISTS(SELECT ...); でbool判定。

    2024/10/12 リンク

    その他
    taiyow
    taiyow where句のインデックスが効いてないという話で、countは巻き込まれ事故だった。ちゃんとexplain見ようよ。チューニングで勘は禁物。

    2024/10/12 リンク

    その他
    homaju
    homaju limitを使うことで余計な処理を省けることについての分かりやすい説明

    2024/10/12 リンク

    その他
    wdoomer
    wdoomer なぜlimit 2なんだ。< n件以上か、なるほど。

    2024/10/12 リンク

    その他
    hdampty7
    hdampty7 バッドノウハウの類だなぁ。結局引っ張る時に頑張るのではなくて登録時に頑張る方がシステムの複雑度は平準化すると思う。根拠はないけど経験的に。一件目登録するときにフラグ立てて制御しときなされ。

    2024/10/12 リンク

    その他
    yodelx
    yodelx 実行計画見ろ、INDEX使え、EXIST句検討しろ。LIMIT句で数件取れたらOKとする判定ならこれで良いか。

    2024/10/12 リンク

    その他
    weakref
    weakref 2件以上存在しない条件も普通にexistsで書けるが…

    2024/10/11 リンク

    その他
    honma200
    honma200 EXISTSってSQLの変態仕様の一つと思っててこのPostgreSQLの書き方だと副問い合わせの結果が1つだけでもあればTRUEで戻ってくるのよね(全部走査するのはFALSEだけ) https://www.postgresql.jp/docs/15/functions-subquery.html

    2024/10/11 リンク

    その他
    tfurukaw
    tfurukaw 新人の頃存在チェックにcountして怒られたなぁ。oraclePL/SQLならselect-into。細かく制御したければopen-fetch-fetch使い分けろとか。まだこういう話になるのね。まだコーディング仕事できるかな?

    2024/10/11 リンク

    その他
    taguch1
    taguch1 小技的なのをいっぱい覚えて最適化で不要になるみたいなのを繰り返す。

    2024/10/11 リンク

    その他
    fellfield
    fellfield 『LIMIT 句を使うアプローチは今回起きていたようなテーブルアクセスを100%抑制できるものではありません。条件に合致する行が0件または1件の場合は結局すべて走査してしまいます』

    2024/10/11 リンク

    その他
    shunyy
    shunyy count(*) に limitつけても全件走査するので途中のSQLは単に間違えてそう

    2024/10/11 リンク

    その他
    turanukimaru
    turanukimaru ぴったり一件だけ、二件は含まない。というケースは…どんなんだ?あるにしても想定外の挙動をしそうだなぁ。0から1にするときに何かを作成するとかフラグを立てる、になんとか作り変えられないか。

    2024/10/11 リンク

    その他
    kibitaki
    kibitaki SQL旧世代の言い伝えでは、count(*)は使わずcount([PKカラム])とかcount(1)を使えだった。今は最適化されてるので差があまり出ないらしいが。

    2024/10/11 リンク

    その他
    prograti
    prograti このユースケースなら自分だったらユーザーに前回購入日時を持たせてレコードにロックをかけて初回購入の判断みたいな実装にするかも

    2024/10/11 リンク

    その他
    kazkun
    kazkun そもそも、バッチで動かすんじゃ無きゃスレッドセーフにならなそうなアーキテクチャじゃない?まず発生しないだろうから問題になり難いけど。

    2024/10/11 リンク

    その他
    hecaton55
    hecaton55 「ぴったりn件存在することの確認」の場合のお話。頻繁に発生するわけではないが、確かにそういう要件はあってもおかしくない

    2024/10/11 リンク

    その他
    sabotem
    sabotem 『「存在しない/n件未満存在する/n件以上存在する」を全件走査せずに判定する』ということでLIMIT nで取得して判定するのね、なるほど。

    2024/10/11 リンク

    その他
    katsyoshi
    katsyoshi 偉い👏👏👏

    2024/10/11 リンク

    その他
    daaaaaai
    daaaaaai ありそう・・・

    2024/10/11 リンク

    その他
    masayoshinym
    masayoshinym まだまだ経験が足りないのか「1件だけ存在するかどうかを確認したい」という経験をしたことがない。

    2024/10/11 リンク

    その他
    KIKERIKI17
    KIKERIKI17 ?? count は悪くなくね?普通に考えて、countは仕様通りの動きをしてて、存在確認をcountで計る方がどうかしてない?countメソッドに変なlimitつける方が事故るよ。なんだこの記事、私の感覚がおかしいのか?

    2024/10/11 リンク

    その他
    taruhachi
    taruhachi 2017年に書いてた。https://qiita.com/taruhachi/items/b2be89a4a4ba794e63ed

    2024/10/11 リンク

    その他
    sds-page
    sds-page 重複が発生しているレコードを全件抜き出したいって需要ならあった

    2024/10/11 リンク

    その他
    lainof
    lainof 「N件以上存在するか」「N件だけ存在するか」が混在しているので分かりにくくなってる

    2024/10/11 リンク

    その他
    xsde
    xsde この仮説が正しいだろうと判断して << EXPLAINで実行計画をちゃんと調べよう!

    2024/10/11 リンク

    その他
    yarumato
    yarumato “select count(*) from table where ... クエリは、1件だけ存在するかを確認したいだけなのに、すべてを数え上げる余分なコストが発生する。想定以上に時間を要する。今回は LIMIT 句を活用して最小限のテーブルアクセスに抑える”

    2024/10/11 リンク

    その他
    moznion
    moznion 良い

    2024/10/11 リンク

    その他
    strawberryhunter
    strawberryhunter Unique indexを使わないということで2件以上の状態もあるけど1件であることを確認するという、そんなユースケースがあるのか。

    2024/10/11 リンク

    その他

    注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

    アプリのスクリーンショット
    いまの話題をアプリでチェック!
    • バナー広告なし
    • ミュート機能あり
    • ダークモード搭載
    アプリをダウンロード

    関連記事

    オイ、そこのSELECT COUNT。余計な数え上げに意味なんかねえ - inSmartBank

    こんにちは。MySQLは秋の季語とする一派が世に存在していることを知り、私もMySQLに関わる記事を書いて...

    ブックマークしたユーザー

    すべてのユーザーの
    詳細を表示します

    同じサイトの新着

    同じサイトの新着をもっと読む

    いま人気の記事

    いま人気の記事をもっと読む

    いま人気の記事 - テクノロジー

    いま人気の記事 - テクノロジーをもっと読む

    新着記事 - テクノロジー

    新着記事 - テクノロジーをもっと読む

    同時期にブックマークされた記事