タグ

postgresqlに関するgayouのブックマーク (55)

  • 検索が爆速になるデータベース設計を公開します

    こんにちは。エンジニアの谷井です。 フォルシアでは、Spookと呼んでいる技術基盤を用いて、主に旅行業界やMRO業界に対して、膨大で複雑なデータを高速検索できるアプリケーションを提供しています。 今回はその高速検索のノウハウのうち、特にDBの扱いに関連する部分について、ベテランエンジニアへのインタビューを通してそのエッセンスをまとめてみました。 一般的なベストプラクティスだけでなく、検索性能を高めることに特化しためずらしいアプローチもあるので、ぜひご覧ください。 フォルシアにおける検索DBについて まず前提としてフォルシアで扱うデータについて軽く説明します。 扱うデータの複雑さ たとえば、旅行会社向けのアプリケーションであれば、宿泊素材の情報としては ホテルの情報「〇〇ホテル」(~約2万件) プランの情報「朝付き・ロングステイ△△プラン」(0~1500件/施設) 客室の情報(~100件/

    検索が爆速になるデータベース設計を公開します
  • オープンソースのデータベース最新版「PostgreSQL 13」がリリース

    「PostgreSQL 13」では、インデックスのスペース節約とパフォーマンスの向上、集約またはパーティションを使用したクエリ応答時間の高速化、拡張統計を使用する際のクエリ実行計画の改善といった、大規模データベースに役立つインデックス作成およびルックアップシステムの大幅な改善が行われている。 パフォーマンスの向上では、Bツリーインデックスの重複データを効率的に処理することで、全体のスペース使用量が削減され、クエリ全体のパフォーマンスを向上している。また、インクリメンタルソートの導入によって、クエリの前のステップでソートされたデータの、後のステップでのソートを高速化する。さらに、拡張統計システムによってOR句を含むクエリ、およびINまたはANYリストのルックアップを改善した実行計画の作成が可能になっている。 さらに、大規模な集計クエリを完全にメモリに収める必要がないので、より多くの集計および

    オープンソースのデータベース最新版「PostgreSQL 13」がリリース
  • NEDOが25億円投じ日の丸RDBを開発中、「国産にも勝機あり」と自信を見せる理由

    厳格なOLTPと高速なOLAPを両立 新RDBの特徴は厳格なOLTP(オンライントランザクション処理)が可能でありながら、ビッグデータ分析にも使用できる高いOLAP(オンライン分析処理)性能を有していることだ。OLTPとOLAPの両立はHTAP(Hybrid Transaction/Analytical Processing)と呼ぶ。OLTPで用いる行方向のデータは不揮発性メモリーを採用する主記憶(メインメモリー)に格納し、OLAP用の列方向のデータを2次記憶装置に格納する。2次記憶装置にも不揮発性メモリーを使用する。 OLTPに関しては、トランザクション処理の分野で一般的なベンチマークである「TPC-C」において1ノードで1000万トランザクション/秒(TPS)の達成を当面の目標とする。そしてトランザクション処理においては、一貫性と隔離性のレベルを示す「トランザクション分離レベル」が最も

    NEDOが25億円投じ日の丸RDBを開発中、「国産にも勝機あり」と自信を見せる理由
  • RDBMS in Action

    RDBMS 理解度の壁: プロダクションや運用保守で困らないシステムを作れる知識 <<<それっぽく動くものを作れる知識 実際のシステムで遭遇・見聞きした事象をもとに、上記のスキマにある各種 RDBMS 知識を説明します。 RDBMS 体の運用よりも、現実のアプリケーションにおける設計・実装上のハマリどころが中心。

    RDBMS in Action
  • 週刊Railsウォッチ(20190910-2/2後編)buildersconと「20年後のソフトウェアテスト」、はてなブックマークがScalaに移行、「詳解PostgreSQL」、Go 1.13ほか|TechRacho by BPS株式会社

    こんにちは、hachi8833です。 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 毎月第一木曜日に「公開つっつき会」を開催しています: お気軽にご応募ください 今回も第14回公開つっつき会を元にお送りします。ご参加いただいた皆さまありがとうございます! ⚓DB ⚓そーだいさんの「詳解 PostgreSQL」連載 元記事: 詳解 PostgreSQL[10/11対応]―現場で役立つ新機能と実践知識:特集|gihyo.jp … 技術評論社 第1章 PostgreSQLの今昔を知る―20年を超える歴史,リリースサイクル,環境構築 第2章 PostgreSQLの内部構造―プロセスやメモリの流れ,特徴的な機能のしくみ 第3章 アプリケーシ

    週刊Railsウォッチ(20190910-2/2後編)buildersconと「20年後のソフトウェアテスト」、はてなブックマークがScalaに移行、「詳解PostgreSQL」、Go 1.13ほか|TechRacho by BPS株式会社
  • PostgreSQL 11 に関する技術情報

    このページでは PostgreSQL 11(2018/10/18リリース) に関する技術情報をお届けします。 ドキュメントは PostgreSQL のリリースノートを元に弊社で解説を加えたものです。 バージョン11の主な拡張点 バージョン11での主な拡張箇所は以下の通りです。 ハッシュキーによるパーティショニングが可能になりました。 パーティションテーブルに対して主キー制約、外部キー制約、インデックスそしてトリガーを作成できるようになりました。 どのパーティションにもマッチしないデータ用にデフォルトパーティションの作成が可能になりました。 パーティションキー列に対する更新を行った際にそれの影響を受けるレコードも適切なパーティションに移動されるようになりました。 パーティションテーブルに対する SELECT のパフォーマンスが向上しました。 B-tree インデックスを作成する CREAT

    PostgreSQL 11 に関する技術情報
  • PostgreSQLでauto_explainを使ってどのクエリが遅いか把握する - $shibayu36->blog;

    ある機能が重いなどといった理由で、DBのどのクエリが遅いか把握したいことはよくあります。そんな時、PostgreSQLのauto_explainが便利だったので紹介。 auto_explainを使うと、指定した実行時間以上を利用しているクエリに対して、自動で実行計画をログファイルに出力してくれるというもの。詳細はこちら。 https://www.postgresql.jp/document/9.6/html/auto-explain.html https://www.postgresql.jp/document/9.6/html/using-explain.html 最近便利に使えたのは以下の設定。 # 自動でEXPLAIN ANALYZEしてパフォーマンス解析したい時用 session_preload_libraries = 'auto_explain' auto_explain.log

    PostgreSQLでauto_explainを使ってどのクエリが遅いか把握する - $shibayu36->blog;
  • Postage - PGAdminの代替を狙うデータベース管理

    MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました PostgreSQLの管理UIとしてはPGAdminが使われることが多いでしょうか。しかし、時にはインタフェースを変えたいと思うこともあるはずです。特にWebブラウザではなくデスクトップアプリの方がアクセスしやすくて便利に感じる方も多いでしょう。 そこで使ってみたいのがPostageです。PGAdminの代替を狙ったPostgreSQL管理です。 Postageの使い方 メイン画面です。左側にテーブル、トリガー、ビューなど多くの情報が並びます。 データの閲覧、編集もできます。 テーブルに関する情報です。 関連付けを可視化するビューです。 Postageは非常に多くの情報が集まっています。表示/非表示を変更することで、運用上不要な情報は消しておけます。表示はタブで管理されていますので

    Postage - PGAdminの代替を狙うデータベース管理
  • PostgreSQLで排他制約がめっちゃ便利!! - そーだいなるらくがき帳

    中国地方DB勉強会っていう控えめに言っても最高の勉強会があるんだけどそこで排他制約について教えてもらいました。 ikkitang1211.hatenablog.jp 排他制約って雑に説明すると重なりを拒否する制約です。 僕は使った事なかったのですが勉強会の中で事例紹介を受けて、めっちゃ便利だったのでここでご紹介します。 どんなときに使うの? 実際にはどんなときに重なりを制御したいかというとよく使うのは次の2つ。 図面の重なり 時間の重なり 1つ目は幾何学的な図面を表現するときです。 実際にPostgreSQLは円や四角をSQLで表現できます。例えば地図上で特定の座標から半径100メートルの円を書き、その中に特定の円(場所)があればErrorにするような制約が書けます。 そもそもSQLで位置計算もめっちゃ便利なので是非使ってみてください。 soudai1025.blogspot.jp そして

    PostgreSQLで排他制約がめっちゃ便利!! - そーだいなるらくがき帳
  • PostgreSQL 9.3 の JSON サポートについて(長いよッ) - Qiita

    Postgresql 9.3でJSON関連のサポートが強化されている。 JSON型 (>=9.2) JSON演算子 (読み込み専用アクセッサ) JSONサポート関数 (JSON データ変換) 9.3リリースの目玉機能だが、使ってみた人が少ないのか一向に情報が上がってこない。 ドキュメントを見てもなんだか面倒くさそうで自分から使う気は起きない。 実際の使い勝手はどうなのか、たまたま開発で触る機会があったのでまとめておく。 PostgreSQL自体そんなに詳しいわけではないので、間違いがあったら突っ込んでほしい。 追記: PostgreSQL 9.4 のリリースで jsonb の登場するなど状況がかなり変わっている。 9.4 ついてもフォローしたので参考にしてほしい。 PostgreSQL 9.4 の JSON サポートについて PostgreSQL JSON の応用メモ テーブルデータをJS

    PostgreSQL 9.3 の JSON サポートについて(長いよッ) - Qiita
  • PostgreSQL 9.4 の JSON サポートについて - Qiita

    PostgreSQL 9.4 で JSON 関連機能が強化された。 jsonb 型の追加 jsonb 関係演算子の追加 GIN インデックスの jsonb サポート JSON サポート関数の拡充 以前 PostgresSQL 9.3 の JSON サポートについてまとめた。 稿はその続編であり、PostgreSQL 9.4 になって JSON どう進歩したのかをユーザ視点で検証したい。(また長いんだこれが) 修正リクエストは歓迎します。 なお稿では、大文字の JSON はその書式やデータを表し、PostgreSQL の型を指す場合に json や jsonb のように小文字を使って区別する。検証は素でソースビルドした beta2 版の PostgreSQL 9.4 を仮想環境上の CentOS 7 上で行った。 jsonb 見参 9.4 で追加された jsonb 型は JSON テキス

    PostgreSQL 9.4 の JSON サポートについて - Qiita
  • PostgreSQL JSON の応用メモ - Qiita

    去年 Qiita PostgreSQL 9.4 の JSON サポートについて紹介させてもらったが、まだ書きかけで jsonb の応用例としてや軽い検証記事や SQL イデオムを追記する予定だったが、整理しきれず放置したままになっていた。 そうこうしている内に早くも次期バージョン PostgreSQL 9.5 の情報がちらほらと出始めてきてしまった。 もうまとめるのは諦めることにして、その時のメモや雑多なコードから動くものを稿に残しておく。 興味とヒマのある方は拾い読みしてほしい。 1. 開発言語からみた jsonb プログラマの立場からみて、普段の開発で使うORM/フレームワークと jsonb の相性はどうなのか。 ここでは代表的なプログラミング言語環境でさらっとイメージだけつかんでおきたい。 個人的に Docker がマイブーム(死語)なので、検証環境に Docker を活用したい。

    PostgreSQL JSON の応用メモ - Qiita
  • はじめてのデータ分析にPostgreSQLを選択する理由

    7. 7/13 SQLで触れるRDBMS 気軽にはじめるならSQL ● 性能 ✔ RDBMSは、基的には1ノードで捌けるものをACIDを守って扱う ✔ 超大量データだと超えられない壁にぶつかる、でも結構がんばれる! ✔ スピードだけならHadoopとかの分散処理基盤が有利な分野ではある ● 利便性 ✔ 集めたデータをどう使うか ✔ SQLで触れる=各種フロントアプリケーションで気軽にレポーティング プログラム (pythonフロントエンドの アプリケーション library データベース SQLをしゃべる データ置き場 SQL 9. 9/13 無料で使えるRDBMS 気軽に使えるオープンソースのデータベース ● ライセンス ✔ PostgreSQLはBSDを改編したPostgreSQLライセンスで配布 ✔ 改変自由、商用利用OK、つまり気軽に使い始められる!!! ドキュメント等にPo

    はじめてのデータ分析にPostgreSQLを選択する理由
  • 基幹DBとしてPostgreSQLはどこまで使えるか? | CLOSE UP コラム | OSSNEWS - オープンソース総合情報サイト

    基幹DBとしてPostgreSQLはどこまで使えるか? オープンソース活用研究所 2016年07月04日 オープンソース活用研究所 所長 寺田雄一 2016年3月17日、TIS株式会社にて、「商用DBからの移行先としてPostgreSQLはどこまで使えるのか?~DBセキュリティと暗号化~」セミナーが開催されました。 第二回目は、TIS株式会社IT基盤技術部OSS推進室・中西 剛紀によるセッション「基幹DBとして、PostgreSQLはどこまで使えるか?」のダイジェストをご紹介いたします。 ※稿は、同講演の内容をベースにTIS株式会社 OSS推進室倉持健史監修のもと、オープンソース活用研究所所長 寺田雄一が執筆しました。 PostgreSQLセキュリティは、PCI DSSに準拠。 年々、主要システムの基幹DBとしてPostgreSQLを採用する企業が増えています。実のところRDBMS

    基幹DBとしてPostgreSQLはどこまで使えるか? | CLOSE UP コラム | OSSNEWS - オープンソース総合情報サイト
  • UberのPostgresqlからNoSQL on MySQLへの移行を読んでざっくりまとめた

    Uber-migrated-pg-to-mysql.md Why Uber Engineering Switched from Postgres to MySQL - Uber Engineering Blog のまとめ Posgresqlだと pgは追記型なので少しの更新でも多くのdiskへのwriteがおきる カラムを一つ更新しただけで多くのindexの書き換えが起こる よって、replicationはWALを送るので更新が多いとWALが大量に送られる repcliationでは物理的なdiskの変更を送る DC間でレプリするときつい bugがあってreplica間でMVCCの不整合が起きる masterとreplica同じdisk上のデータ構成を共有するのでupgradeがつらい cache readはsyscallとosのpage cache経由なので重い 1コネクション1プロセス

    UberのPostgresqlからNoSQL on MySQLへの移行を読んでざっくりまとめた
  • Why Uber Engineering Switched from Postgres to MySQL

    We’ve represented the old version in red and the new row version in green. Under the hood, Postgres uses another field holding the row version to determine which tuple is most recent. This added field lets the database determine which row tuple to serve to a transaction that may not be allowed to see the latest row version. With Postgres, the primary index and secondary indexes all point directly

    Why Uber Engineering Switched from Postgres to MySQL
  • このRDBについて私は驚くべき闇を見つけたがそこを発表するにはネットは怖すぎる

    YAP(achimon)C::Asia Hachioji 2016midの資料です。

    このRDBについて私は驚くべき闇を見つけたがそこを発表するにはネットは怖すぎる
  • JSONBの機能強化

    今回は、PostgreSQL 9.5(以下、9.5)で機能強化されたJSONBについて、実際に動かしながら紹介します。 JSONBデータ型は、PostgreSQL 9.4(以下、9.4)で導入されたJSONデータ(JavaScript Object Notation:テキストベースのフォーマット)をバイナリ形式で格納するためのデータ型です。9.5では、このJSONBデータ型の機能が強化され、新規に関連する複数の関数や演算子等が実装されました。 以下のように定義されたempテーブルを用いて、これら新規に実装された主な関数や演算子の振る舞いを確認してみましょう。 jsonb_set関数 9.4ではUPDATE文を用いて行全体を更新できましたが、特定のメンバ(キーと値の組み合わせ)のみを更新することはできず、変更不要なメンバも含めすべて書き出してUPDATE文で更新するか、複雑なユーザ定義関数を

    JSONBの機能強化
  • PostgreSQLでWebサービスを運用するためにやっていること - LCL 開発者ブログ

    弊社では、RDBMSにPostgreSQLを利用して数年間サービスを運営しています。 PostgreSQLMySQLと違って、Webサービスでの運用事例をあまり見かけないので、今回は弊社サービスの「夜行バス比較なび 」でどのように運用しているかを紹介いたします。 システムの特徴 ユーザからのアクセスは、9割が参照処理。 データはバッチ処理で、随時 ( 毎分 ) 更新されている。 参照SQLの結果はmemcachedを利用してキャッシュをしているが、データの更新頻度が高いため長時間のキャッシュはしていない。 参照SQLは、集計処理が多いため比較的重いSQL。 参照対象となるテーブルのデータ量は、最大で数100万レコードと比較的少ない。 24/7で稼働。 構成 AWSのEC2上に、PostgreSQL 9.3を導入しています。c4系のインスタンスを使いたいので、RDSは使っていません。インス

    PostgreSQLでWebサービスを運用するためにやっていること - LCL 開発者ブログ
  • PostgreSQLのJSON型を使ってみた - Qiita

    ちょいとPostgreSQLのJSON型を使ってみたら結構便利だったので紹介します。 できること もちろん、登録可能なデータはJSONだけなのですが、 - JSONから値をとりだす - JSON内の値を利用してwhereやorder、groupなどがかけられる といったことが可能です。 使い方 id json_data

    PostgreSQLのJSON型を使ってみた - Qiita
    gayou
    gayou 2016/06/09
    ドキュメント型は、MongoDB使うよりPostgresの方が安定するんじゃないか、というある人の話を思い出した。