タグ

SQLとPostgreSQLに関するastk_fのブックマーク (6)

  • WHERE 条件のフィールドを UPDATE するのって,明示的にロックしてなくても安全?全パターン調べてみました! - Qiita

    WHERE 条件のフィールドを UPDATE するのって,明示的にロックしてなくても安全?全パターン調べてみました!MySQLSQLPostgreSQLDatabaseQiitaEngineerFesta2022 TL; DR MySQL/Postgres とも, MVCC アーキテクチャの恩恵で, SELECT と UPDATE は基的には競合しない。 単一レコードのシンプルな UPDATE でも排他ロックされ,排他ロック中のレコードへの UPDATE での変更操作は トランザクション分離レベルによらず ブロックされる。UPDATE 文に含まれる WHERE 句での検索もブロックされ,これはブロックされない SELECT による検索とは別扱いになる。 但し UPDATE 文の WHERE 句上で,更新対象をサブクエリの SELECT から自己参照している場合は例外。トランザクション分離

    WHERE 条件のフィールドを UPDATE するのって,明示的にロックしてなくても安全?全パターン調べてみました! - Qiita
  • SQLのインデックスとそのチューニングについてのオンラインブック

    開発者向けのSQLインデックス解説サイト、管理についての間違いない知識を提供します。 インデックスは開発時には忘れられがちである一方で、非常に効果的なSQLのチューニング方法です。Use The Index, Lukeでは、HibernateなどのORMツールの解説にとどまらず、SQLのインデックスについて基礎から説明します。 Use The Index, LukeはSQLパフォーマンス詳解のWeb上の無料版です。サイトを気に入って頂けたら、ぜひ書籍も購入してみて下さい。また、このサイトの運営をサポートする様々なグッズも販売しています。 MySQLOracleSQL ServerなどにおけるSQLのインデックスUse The Index, Lukeでは、ベンダにとらわれないインデックスの説明を心がけています。製品特有の事柄については、以下のような表示をしています。 Db2 (LUW)U

    SQLのインデックスとそのチューニングについてのオンラインブック
  • PostgreSQLで全角半角大文字小文字ひらがなカタカナを区別せず検索したい!というよくあるわがままに応える - ほんじゃらねっと

    したいしたい!絶対したい!と駄々をこねられたので調査してみた。 こういった区別なし検索を実装する方法としてパッと思いつくのは、 あらかじめ検索対象となるカラムの検索用カラムを用意して、 データ変更時にトリガーで 元カラムの内容を半角小文字英数字カタカナに変換したデータが入るようにしておき、 検索時はその検索用カラムを使用する、という方法。 これはめんどくさそうだ。 SQL Serverは照合順序の設定で制御できるらしい。 照合順序と Unicode のサポート PostgreSQLも同じことができないかと調べてみたけど、対応してなさそう。 第22章 多言語対応 他に方法がないか調べてみると、 「式インデックス」を使って、自作の変換用関数で変換したデータを インデックスに登録しておく方法を試しているページがあった。 PostgreSQLで全角半角を区別しない問い合わせ この方法なら少なくとも

    PostgreSQLで全角半角大文字小文字ひらがなカタカナを区別せず検索したい!というよくあるわがままに応える - ほんじゃらねっと
  • [SQL] SQL文の書き順 〜PostgreSQL Tutorialを使いながら解説〜 | DevelopersIO

    はじめに いざSQL文を書こうと思ったけど、どこから書けばよいのか迷うことはないでしょうか? まずはselect句から書こうかな。。 使用するテーブルはわかっているのでfrom句から。。 where句はちょっと長くなるから後回しにして。。。 などなど 長いSQL文を書く必要がある時に、どこから書けばいいのか迷う方(僕もそうです)に読んでいただければと思います。 今回ご紹介する書き方は、あくまでも僕がSQL文を書く時に気をつけている方法ですので、他にもっといい書き方・書き順がある可能性があります。 今回は順番にフォーカスしているため、個々の句についての解説は割愛します。 環境 MacOS 10.10.5 PostgreSQL 9.4.5 実行順序 SQLが実行される順番は以下のようになっています。 FROM → WHERE → GROUPBY → HAVING → SELECT → ORDE

    [SQL] SQL文の書き順 〜PostgreSQL Tutorialを使いながら解説〜 | DevelopersIO
  • クエリチューニング: GROUP BY から LATERAL への書き換え - Qiita

    「ユニークキーの GROUP BY」 を 「LATERAL」 に書き換えることで、クエリを性能改善できる可能性があります。 ここでは、非常にシンプルな書き換えの例を示します。 テーブルの準備 まずは、以下のような「部署」、「書籍」、「部署ごとの書籍在庫数」を管理する3つのテーブルを準備します。 なお、「書籍」テーブルは、データベースの状況をイメージしやすいように用意しているだけで、以降のクエリ書き換えでは特に使いません。 -- 部署のIDと名前を管理するテーブル department を作成 CREATE TABLE department (dept_id INTEGER PRIMARY KEY, name TEXT); -- 部署の情報を5件登録 COPY department (dept_id, name) FROM stdin; 1 総務部 2 開発部 3 財務部 4 企画部 5 購

    クエリチューニング: GROUP BY から LATERAL への書き換え - Qiita
  • PostgreSQLに興味がある人向けにまとめてみた。|PostgreSQL|お仕事メモ|Pictnotes

    PostgreSQL9.2がでたのと、一部で?またPostgreSQLを使いたいと思ってる人が多くなったとかあるみたいなので 4〜5年触ってなかったか、全然知らない人向けとおさらいとしてまとめてみた。 ざっくり書いてるので、詳しい人からみるとおかしい点もあるかと思いますが、気になった点はより詳しい記事が あると思うので、調べてみてください。 明らかな間違え等々は、修正加筆したいので、コメントか twitterの @itm_kiyoまで、御願いします。 Q. なんて読むの?書くの? A. PostgreSQL(ぽすとぐれすきゅーえる)、PとSQLは大文字。ちなみにMySQL(y以外は大文字)なんで、小文字と大文字の区別をきちんとするとその界隈の人がよろこびます。 でも、「postgres」 とか 、「Postgres」や「ポスグレ」とか書かれてることも多いです。 Q. どのバージョンを使うの

  • 1