本規約は、世の中のシステム開発プロジェクトのために無償で提供致します。 ただし、掲載内容および利用に際して発生した問題、それに伴う損害については、フューチャー株式会社は一切の責務を負わないものとします。 また、掲載している情報は予告なく変更することがございますので、あらかじめご了承下さい。 はじめに 本規約はPostgreSQLを使用する開発者向けに、DBのテーブルやカラムの命名・型桁・制約などのスキーマ管理に加え、履歴・排他制御・マルチテナント対応などアプリケーション設計を含む内容についての設計標準を紹介する。 以下の目的・意図で作成するものとする。DB設計の主な論点/設計項目/設計観点を提供することで、開発者の考慮漏れを防ぐとともに、チームでの設計上の合意形成を手助けするシステム開発における標準ラインとなる設計手法を提供することでナレッジやツールの横展開を容易にする適用範囲 作成
「楽観同時実行制御ね。おーおーおー、そういうことね。なるへそ?」Aurora DSQLは、re:Invent 2024の最大の発表でした(個人の感想です)。キーノートの最中に、いきなりGoogle CloudのSpannerが引き合いに出されるほどだったので、Spannerファンの人にも要チェックのアプデだったのではと思います。 マルチリージョン対応 高可用性とスケーラビリティVPCの外で稼働 サーバーレス設計 ACID特性のサポート PostgreSQL互換rd 楽観的同時実行制御(OCC)の採用 分散アーキテクチャ など、ポイントが目白押しのAurora DSQLですが、トランザクション制御の仕組みが、RDBでは聞き慣れない楽観的同時実行制御(OCC)が採用されていると聞き、改めてその挙動を手を動かしてまとめてみました。 はっきり言います。ドキュメント読んでいるだけより手を動かした
そーだいさんが執筆された記事で、履歴テーブルから最新の1件を取ってくる方法について解説している。PostgreSQLの例だと以下のようなユーザーの履歴データに対し:CREATE TABLE history ( id SERIAL PRIMARY KEY, user_id INTEGER NOT NULL, dataTEXT,created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); INSERT INTO history (user_id, data,created_at) VALUES (1, 'First entry of user1', '2024-01-01 10:00:00'), (1, 'Second entry of user1', '2024-01-02 09:30:00'), (2, 'First entr
はじめにGoogleカレンダーのような時間枠を扱うシステムを設計する際、開始・終了時刻を管理するロジックは容易ではない。 しかし、PostgreSQLには 範囲型 があり、この機能を活用することで、開始時刻(begin_at)と終了時刻(end_at)を1つのカラムで扱えるようになる。 そこで本稿では、範囲型を用いた設計と、その利点を紹介する。 時間枠を扱う難しさ まず前提として時間枠の扱いがなぜ難しいかを紹介する。 ソフトウェアデザインでやっている連載、実戦データベースリファクタリングの 【12】厄介な時間枠に向き合う でも紹介したが、時間の範囲を比較するときが難しい。 範囲の重なりには以下の種類がある。 包含:範囲Aが範囲Bを完全に含む 重複:範囲Aと範囲Bに共通点がある 隣接:範囲Aと範囲Bが隣り合う 時間枠の扱いはSQLに限らず、プログラミングの題材として難易度が高い。 特に重複
例えば次のようなテーブルがあったとする。 -- PostgreSQLCREATE TABLE history ( id SERIAL PRIMARY KEY, user_id INTEGER NOT NULL, dataTEXT,created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); --MySQLCREATE TABLE history ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, dataTEXT,created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ); INSERT INTO history (user_id, data,created_at) VALUES (1, 'First
UUIDs are often used asdatabase table primary keys. They are easy to generate, easy to share between distributed systems and guarantee uniqueness. Considering the size ofUUIDit is questionable ifit is a right choice, but oftenit is not up to us to decide. This article does not focus on "ifUUID is the right format for a key", but how to useUUID as a primary key with PostgreSQL efficiently. P
PGDSAT is asecurity assessment tool that checks around 70 PostgreSQLsecurity controls of your PostgreSQL clusters including all recommendations from the CIS compliance benchmark but not only. This tool is a single command that must be run on the PostgreSQL server to collect allnecessaries system and PostgreSQL information to compute asecurity assessmentreport. Areport consist in a summary of
文脈、背景や問題点の説明 マルチテナントを実装するうえで企業情報(以下company)単位で最小限の情報を扱うようにしたいがcompany単位にTableを作ったりDatabaseを作るのはALTERなどの運用が大変。 そこでRLSを採用するために実際の技術検証をした上での注意点と実際の運用について必要な情報をまとめる。 PostgreSQL 14を前提としている 公式ドキュメントCREATE POLICY 必ず一読はすること。 困ったとき、わからないときはまずは公式ドキュメントを都度見ること。 このドキュメントのゴール RLSの概要をつかめる RLSの最低限の注意点を理解し、実装時に罠を踏まない 自分たちでRLSのポリシー自体をメンテナンスすることができ、デバッグできる テーブル構成create table if not exists company ( iduuid defaul
今回の記事は、パフォーマンスチューニングの観点と仕組みを理解することに主眼を置いています。具体的な対処方法についてはシステムによって異なるため、マニュアルの確認や、各種チューニングサービスのご利用をご検討ください。なお、この記事で対象にしているPostgreSQLのバージョンは9.5以降です。本記事の構成本記事「パフォーマンスチューニング9つの技」は以下4つの記事から構成されています。他の記事も併せてご覧ください。 パフォーマンスチューニング9つの技 ~はじめに~ パフォーマンスチューニング9つの技 ~「書き」について~ パフォーマンスチューニング9つの技 ~「探し」について~(本記事) パフォーマンスチューニング9つの技 ~「基盤」について~ 1. パフォーマンスチューニングの「探し」とは PostgreSQLは、SQLが発行されると、アクセス先のデータの特性を示す『統計情報』を参照
今回の記事は、パフォーマンスチューニングの観点と仕組みを理解することに主眼を置いています。具体的な対処方法についてはシステムによって異なるため、マニュアルの確認や、各種チューニングサービスのご利用をご検討ください。なお、この記事で対象にしているPostgreSQLのバージョンは9.5以降です。本記事の構成本記事「パフォーマンスチューニング9つの技」は以下4つの記事から構成されています。他の記事も併せてご覧ください。 パフォーマンスチューニング9つの技 ~はじめに~ パフォーマンスチューニング9つの技 ~「書き」について~(本記事) パフォーマンスチューニング9つの技 ~「探し」について~ パフォーマンスチューニング9つの技 ~「基盤」について~ 1. パフォーマンスチューニングの「書き」とは 一般的にデータベースは、大量データを扱い、大量の問い合わせや更新を高速に処理し、さらに障害発生
Performance Insights は、SQL 呼び出しごとおよびクエリが実行中の 1 秒ごとにSQL 統計を収集します。RDS for PostgreSQL はSQL 統計をダイジェストレベルでのみ収集します。ステートメントレベルでは、統計は表示されません。 RDS for PostgreSQL のダイジェストレベルの統計の詳細については、以下を参照してください。 RDS PostgreSQL でのダイジェスト統計SQL ダイジェストの統計を表示するには、RDS PostgreSQL が pg_stat_statements ライブラリをロードする必要があります。PostgreSQL 11 以降と互換性のある PostgreSQLDB インスタンスでは、このライブラリはデフォルトでロードされます。PostgreSQL 10 以前と互換性のある PostgreSQLDB イ
NTT オープンソースソフトウェアセンタ 板垣 貴裕 スロークエリ (時間のかかるSQL) を発見するまでの手順を解説します。スロークエリ分析と改善は以下の流れで行うことになります。この記事では主に 1. のスロークエリの特定方法について解説します。2.については『スロークエリの改善』を参考にしてください。 どのSQLが遅いのかを見つける。 そのSQLがなぜ時間がかかるのかを判断する。 設定パラメータ、SQL、スキーマなどを改善する。 着目したSQLの性能を再測定し、2. から繰り返す。 着目したSQLのチューニングが完了したら、他のボトルネックを探すため 1. から繰り返す。 スロークエリの見つけ方 スロークエリを見つけるには、大きく分けて統計情報ビューを使う方法と、サーバログを使う方法の2つがあります。統計情報ビューを使う方法は PostgreSQL 8.4 以降でしか利用できませんが
はじめに 今回はPostgreSQLの統計情報収集ツールであるPoWA(PostgreSQL Workload Analyzer)で提供されているインデックスアドバイザ(pg_qualstats)が独立した機能として提供されるという情報を知ったので、どんなものかさっそく試してみようと思います。 pg_qualstatsは、これまでは大本のPoWAでインデックスの最適化をするための情報収集用のEXTENSIONとして使われていたものです。機能としては、Query情報のWHEREステートメントとJOIN句で見つかった述語の統計情報を保持して、その収集した情報をもとに最適なINDEXの条件を出すそうです。 ちなみにバージョン2からが独立版としての正式リリースみたいです。なので、今回試した時点では正式リリース版ではないのでご注意ください。(現在は、2.0.0dev版となっていました。リリース版は1
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く