記事へのコメント45

    • 注目コメント
    • 新着コメント
    オーナーコメントを固定しています
    shallow1729
    オーナー shallow1729 書きました!シンプルなクエリでも想定外にフルスキャンを起こす事がある話です

    2021/12/19 リンク

    その他
    do_su_0805
    do_su_0805 助かった

    2022/04/01 リンク

    その他
    kobito19
    kobito19 で、原因分かってそのクエリのパフォーマンスは改善したん?(そもそもそのフルスキャンはパフォーマンス問題を引き起こしてたん? 何の目的で調査してたのか読んでもわからん)

    2021/12/21 リンク

    その他
    k_wizard
    k_wizard INの中にそんなに入れるの…

    2021/12/21 リンク

    その他
    otcsr
    otcsr m

    2021/12/20 リンク

    その他
    moccos_info
    moccos_info クソ長IN句を「シンプルなもの」と言い張るの正気か

    2021/12/20 リンク

    その他
    noblejasper
    noblejasper IN句に数万。まれによくあるよね

    2021/12/20 リンク

    その他
    zu2
    zu2 “MySQLのパラメーター次第ですが、デフォルトの設定だとこのIN句の中の値の数が数万になると適切なインデックスが用意されていてもフルスキャンが発生する事がありました”

    2021/12/20 リンク

    その他
    shimarisugi
    shimarisugi この辺の話が分かるようにsql触っておいて良かった。IN句の中身をサブクエリ(or with)で取得したIDのリストなんかにするとヤバそうね

    2021/12/19 リンク

    その他
    wkwkhautbois
    wkwkhautbois IN句の中に何千もパラメータが入っていたら正気か疑うけど、MySQLだとやる方法なのか…。あるいはORマッパーが生成か。

    2021/12/19 リンク

    その他
    khtno73
    khtno73 まずin 使うならexistsのがたいていのRDBMSだと速いし、この件数ならダミーテーブルにそのid突っ込んで元テーブルとinner joinする方が普通は速そう。

    2021/12/19 リンク

    その他
    ghostbass
    ghostbass IN句の中の値の数が数万<ちょっと考えにくいけどどういうユースケースなんだろ

    2021/12/19 リンク

    その他
    rryu
    rryu 件数を絞らずにN+1の+1を取得するクエリーがこうなりがちではあるが、そもそもそういうことをするのが良くない感じはする。

    2021/12/19 リンク

    その他
    ene0kcal
    ene0kcal ここ数年SQL全く触ってないけど、こういった時のIN句よりベターなプラクティスがあった気がするんだけど何だったけな??

    2021/12/19 リンク

    その他
    s_rsak
    s_rsak INの中に数万個入れるとか、初心者でも何かマズイことが起こりそうだと分かりそうなものだが。

    2021/12/19 リンク

    その他
    rx7
    rx7 なるほど。ロジックと実際に検証された結果がまとまっていて勉強になった。

    2021/12/19 リンク

    その他
    bopperjp
    bopperjp DBA って職種があるだけに、DBはどこまでも沼。

    2021/12/19 リンク

    その他
    abryhryk
    abryhryk 高木ひとみ○を思い出した

    2021/12/19 リンク

    その他
    rokujyouhitoma
    rokujyouhitoma IN句に2^23/2も突っ込むことはないかな。その規模のデータ量扱う時にはシャーディングして、もっと散らしてしまっている。

    2021/12/19 リンク

    その他
    krrrr
    krrrr 静的解析で分割してないとCIでエラーにするみたいなlint入れたりして対応してるんだけど、他の皆どうしてんの

    2021/12/19 リンク

    その他
    kagehiens
    kagehiens 想定外というのも違和感があるが、何億レコードあるテーブルでも一律の個数上限でモード変えられると困ると言うのは分かる。でもこれだけの数inで書くのも可能なら避けたい。

    2021/12/19 リンク

    その他
    oktnzm
    oktnzm IN句内なら多くてもせいぜい数百だろうに・・・数万とか一時テーブル使った方がいい。ドキュメントなめるよりRDBの基本構造学んだ方が有益だろう。

    2021/12/19 リンク

    その他
    queeuq
    queeuq 勉強になる。

    2021/12/19 リンク

    その他
    s025236
    s025236 auroraとmysqlの実行計画が同じ前提で話が始まってるんだけど…一昔前は全然違ったんだけど今は一緒なの?

    2021/12/19 リンク

    その他
    daishi_n
    daishi_n 昔のMySQLはサブクエリが遅くて鬼門だったんだけどね。

    2021/12/19 リンク

    その他
    regularexception
    regularexception 長大なin句より、tmpテーブル作ってで処理した方がいいかなぁって最近思う

    2021/12/19 リンク

    その他
    shikiarai
    shikiarai 下手なIN句を見つけると手を加える前に前任者はクソと周りに丁寧に説明してから直すようにしてる。

    2021/12/19 リンク

    その他
    ms2sato
    ms2sato 単に私が経験不足なのかもしれないが、サブクエリとか使うものに感じた。大量のIDだけ配列で持ってるならそれも検索の結果に感じるので。何か前提が違うとかなのだろう。

    2021/12/19 リンク

    その他
    strawberryhunter
    strawberryhunter ↓Oracleの制限で昔話を思い出したんだけど、このフルスキャンの話もIN (SELECT ...)にしたら解決する話ちゃうん。ちょっとググったら↓DEPENDENT SUBQUERYは改善されてるらしいし、検証してもらいたいわ。

    2021/12/19 リンク

    その他
    highqwerty8
    highqwerty8 後で確認

    2021/12/19 リンク

    その他
    findup
    findup ある条件に一致するレコードのIDを先にSELECTしておいて、そのIDをn件単位でSELECTしたい時とかだとIN区に詰め込むことがあるかなあ。

    2021/12/19 リンク

    その他

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

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

    関連記事

    MySQLでIN句の中に大量の値の入ったクエリがフルスキャンを起こす話 - freee Developers Hub

    こんにちは、freee Developers Advent Calendar 2021、19日目のid:shallow1729です。昨日はtdtdsさんで...

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

    • yamahitsuji6132023/08/16 yamahitsuji613
    • techtech05212023/04/04 techtech0521
    • mjf2015ck2023/01/11 mjf2015ck
    • lunastera2022/06/10 lunastera
    • northlight2022/04/13 northlight
    • toru-tanaka2022/04/11 toru-tanaka
    • anachrome2022/04/11 anachrome
    • masarukondo2022/04/11 masarukondo
    • do_su_08052022/04/01 do_su_0805
    • mjtai2022/03/23 mjtai
    • nariatsu2022/02/21 nariatsu
    • kwy2022/01/20 kwy
    • manhole2022/01/10 manhole
    • yysaki2021/12/21 yysaki
    • kobito192021/12/21 kobito19
    • katoken122021/12/21 katoken12
    • k_wizard2021/12/21 k_wizard
    • cloudliner2021/12/21 cloudliner
    すべてのユーザーの
    詳細を表示します

    同じサイトの新着

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

    いま人気の記事

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

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

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

    新着記事 - テクノロジー

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

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