Upgrade to Pro — share decks privately, control downloads, hide ads and more …

そのSQL、もっと速くなりますよ。

 そのSQL、もっと速くなりますよ。

「FORCIA Meetup #4 高速検索を支えるPostgreSQLのノウハウ」の資料です

forcia_dev_pr

February 21, 2022
Tweet

More Decks by forcia_dev_pr

Other Decks in Programming

Transcript

  1. 自己紹介
 • 長尾 和昌 (Kazumasa Nagao)
 • ソフトウェアエンジニア
 旅行系アプリケーションの開発・保守
 •

    職歴
 某電力会社の営業・経理 → プログラミング独学
 → 起業 → 資金が底をつく → 就職
 2
  2. Case3. ループするSQLにご注意
 38 5回ループ { CREATE TABLE 新テーブル_{1~5} AS SELECT

    hoge FROM Aテーブル INNER JOIN Bテーブル INNER JOIN Cテーブル INNER JOIN Dテーブル INNER JOIN Eテーブル_{1~5} ; }
  3. Case3. ループするSQLにご注意
 40 CREATE TEMPORARY TABLE 一時テーブル AS SELECT hoge

    FROM Aテーブル INNER JOIN Bテーブル INNER JOIN Cテーブル INNER JOIN Dテーブル ; 5回ループ { CREATE TABLE 新テーブル_{1~5} AS SELECT hoge FROM 一時テーブル INNER JOIN Eテーブル_{1~5} ; }
  4. Case4. 理解不能な激ムズSQLでも速くしたい
 45 SELECT 超複雑な処理 FROM ( SELECT 超複雑な処理 FROM

    ( SELECT 超複雑な処理 FROM ( -- かろうじて理解できた部分、ここから SELECT hoge FROM Aテーブル INNER JOIN Bテーブル INNER JOIN Cテーブル INNER JOIN Dテーブル INNER JOIN Eテーブル -- かろうじて理解できた部分、ここまで ) ) );
  5. Case4. 理解不能な激ムズSQLでも速くしたい
 51 CREATE TEMPORARY TABLE 一時テーブル AS SELECT hoge

    FROM Aテーブル INNER JOIN Bテーブル INNER JOIN Cテーブル INNER JOIN Dテーブル INNER JOIN Eテーブル ; ANALYZE 一時テーブル; SELECT 超複雑な処理 FROM ( SELECT 超複雑な処理 FROM ( SELECT 超複雑な処理 FROM 一時テーブル ) );