PostgreSQL

スポンサーリンク
PostgreSQL

【実務・中級編】 ハッシュ結合とwork_mem – PostgreSQL

「先輩、最近クエリが遅いんですけど、実行計画を見たら『Hash Join』のところで『Batches』って表示されていて……」先日、後輩からこんな相談を受けました。PostgreSQLを触っていると一度はぶつかる壁、そう、「メモリ不足による...
PostgreSQL

【入門編】 ハッシュ結合とwork_mem – PostgreSQL

こんにちは!データベースの世界へようこそ。普段、何気なく書いているSQL。「なんでこのクエリ、こんなに遅いの?」なんて思ったことはありませんか?今日は、PostgreSQLが裏側で頑張っている「ハッシュ結合」という仕組みと、それを影で支える...
PostgreSQL

【テクニカル・上級編】 ネステッドループ結合のチューニング – PostgreSQL

「Nested Loopは悪か?」――PostgreSQLの結合アルゴリズムを再考するPostgreSQLのクエリプランナと長く付き合っていると、時折「Nested Loop Join」に対して過剰な嫌悪感を抱いているエンジニアに出会うこと...
PostgreSQL

【実務・中級編】 ネステッドループ結合のチューニング – PostgreSQL

やあ。最近、PostgreSQLのクエリが「なぜか遅い」って悩んでない?パフォーマンスチューニングの世界に足を踏み入れると、まず最初にぶち当たる壁が「結合(JOIN)」の戦略だよね。特に、PostgreSQLが選ぶ「ネステッドループ結合(N...
PostgreSQL

【入門編】 ネステッドループ結合のチューニング – PostgreSQL

こんにちは!データベースエンジニアの技術ブログへようこそ。今日は、PostgreSQLの「ネステッドループ結合(Nested Loop Join)」という、ちょっと難しそうな名前のテクニックについてお話ししますね。名前を聞くと構えてしまうか...
PostgreSQL

【テクニカル・上級編】 TIDスキャン – PostgreSQL

PostgreSQLの「禁じ手」か、それとも「奥の手」か。TIDスキャンという名の最短経路PostgreSQLを長く触っていると、誰しも一度はクエリの遅延という壁にぶつかります。複雑なJOIN、重い集計、そして「どうしてそこまでインデックス...
PostgreSQL

【実務・中級編】 TIDスキャン – PostgreSQL

「え、まだ `WHERE id = 123` で消耗してるの?」現場で若手エンジニアの書いたクエリを見ていて、ふと思うことがあります。もちろん、プライマリキーを使った検索はデータベースの基本中の基本。インデックスが効いていれば十分高速です。...
PostgreSQL

【入門編】 TIDスキャン – PostgreSQL

「住所」を知らずに「部屋番号」で直接ノックする魔法?TIDスキャンの話こんにちは!データベースの世界へようこそ。普段、私たちがデータベースからデータを取り出すとき、例えば「会員番号が123番の人を教えて!」と検索しますよね。これって、巨大な...
PostgreSQL

【テクニカル・上級編】 Index Only ScanとVisibility Map – PostgreSQL

「なぜIndex Only Scanが効かないのか」――Visibility Mapの深淵を覗くPostgreSQLのチューニングにおいて、誰もが一度は「Index Only Scan(IOS)」という聖杯を追い求める時期があるはずです。イ...
PostgreSQL

【実務・中級編】 Index Only ScanとVisibility Map – PostgreSQL

「ねえ、PostgreSQLでクエリが遅いとき、とりあえずインデックスを貼って満足してない?」ふと後輩のコードを見ていてそう思うことがよくあります。もちろんインデックスは大事。でも、そのインデックスが「本当に最大限の仕事」をしているかまで気...
スポンサーリンク