Scraps 最終更新 2026/10/01 19:40

#データベース

@Western24 /

Oracle Databaseのアクセス制御 - VPDの仕組みとDeep Data Securityとの違い -

  • Oracle DatabaseのVPDとDeep Data Securityのアクセス制御機能の違いが説明されている
  • VPDはセッション情報に基づく行アクセス制御、Deep Data Securityはエンドユーザー向けデータ権限の和集合制御
  • VPDはアプリケーションユーザー情報の伝播が必要で、Deep Data Securityは自動的なコンテキスト伝播が可能で設定が簡易

@Masaki /

「index を張ったのに使われない」には理由がある — 述語が Index Cond になるための 4 つの関門

  • PostgreSQLでインデックスが使われないのは4つの関門を通過できなかったから
  • 場所(テーブル跨ぎOR)、形と演算子(関数包み)、安全性(RLS)、キー(トライグラム不足)の4関門
  • RLS有効時はILIKEがインデックス条件にならない、検索語が短すぎる場合はトライグラムが作れない

@mizzsugar /

明細の履歴テーブル設計に思いを馳せる

  • 明細の変更履歴を保存する3つの方式を比較し、要件に応じた選択肢を提示した
  • 方式1はバージョン付き履歴テーブル、方式2は画面スナップショットのJSON保存、方式3はスナップショット+差分メタデータ管理
  • 監査・ロールバックが必要な取引データには方式1が適切で、表示速度優先なら方式3が実用的

@k-mizuno-aws /

Amazon QuickからEC2上のMySQLにVPC接続する方法

  • EC2上のMySQLをAmazon QuickにVPC接続する手順が解説されている
  • VPC接続にはセキュリティグループとIAMロールの設定が必要で、MySQLのデータソースを追加する際にはプライベートIPを指定する
  • セキュリティグループで最小権限を設定し、IAMロールに必要なポリシーをアタッチする際の注意点が記載されている

@otait /

【DB崩壊の罠】「とりあえずN+1問題」を解消しようとして巨大JOINを組み、メモリを食い潰した話

  • N+1問題を回避するために巨大JOINクエリを組んだ結果、メモリを食い潰すシステム障害が発生した
  • JOINクエリによるデータ件数の爆発とORMの重複データ処理が原因。IN句を使ったクエリ分割が有効
  • JOINクエリのデータ量とメモリ負荷を意識し、IN句によるクエリ分割を検討すべき

@加藤雅人 /

複数のインデックスとIN句の要素数がMariaDBの最適化処理に与える影響

  • MariaDBで複数のインデックスとIN句の要素数が増えると最適化処理時間が増加する
  • IN句の要素数が増えるとrangeの数が乗算で増加し、複数のインデックスがあると評価候補が増える
  • IN句の要素数が100になると最適化処理時間が10倍以上増加し、optimizer_max_sel_arg_weightで制限が必要になる

@Kanaru Isoda /

Rust の ORM 選定に新しい選択肢は来るか? Toasty を使ってみる

  • RustのORMライブラリToastyがSQLとNoSQLデータベースをサポートする一貫したAPIを提供
  • アプリケーションスキーマから自動生成されるデータベーススキーマ、リレーションの属性指定、DynamoDBとの互換性
  • DynamoDBでは一意制約を独立したテーブルで管理し、トランザクションでレコードの重複をチェックする仕組みがある。

@萩原 舞 /

Weekly AWS アップデート情報 - 2026年8月31日

  • Amazon Redshift が Agent Toolkit for AWS と統合し、AIエージェントによるデータウェアハウス管理を支援
  • Redshift skills と AWS MCP サーバーの統合、10MiBレコードサイズサポート、OAuth 2.0認証対応
  • AIエージェントによるデータ操作が可能になり、大容量データ処理やセキュアなレプリケーションが強化される

@kanakani /

OCIのADBで点群から3Dメッシュ(ポリゴン)を生成し、OBJ形式でエクスポートして可視化してみた。

  • ADBのSpatial機能で点群から3Dメッシュを生成しOBJ形式でObject Storageに保存
  • SDO_PC_PKGで点群作成、SDO_TIN_PKGでメッシュ生成、DBMS_CLOUDでObject Storageにアップロード
  • ADB ServerlessではOracle JVMが必要で、メッシュ生成にはブロックサイズや精度の設定が重要

@菊地 /

BigQuery ストアドプロシージャ:SQLによるデータ処理の自動化・高度化

  • BigQueryでストアドプロシージャを導入することで、条件分岐やループ処理、動的SQLが可能になる
  • IF文による条件分岐、WHILE文によるループ処理、EXECUTE IMMEDIATEによる動的SQL生成が可能、変数と一時テーブルの利用もサポート
  • ストアドプロシージャの実行時間は最大6時間で、ループ処理はコスト高騰のリスクがあるため、バッチの粒度を設計する際の注意が必要

@uo /

Spannerのback joinを読み解く

  • Spannerのback joinはindexにない列を取得するためにベーステーブルへ引き直す動作で、応答時間に影響する
  • indexスキャン後にベーステーブルを引き直すDistributed Cross Applyと、STORINGでindexを広げる方法が主な対処法
  • back joinの回数を減らすにはindexのキー列に条件やソート列を含め、LIMITの後に移すことでコストを抑えるのが効果的

@ora_gonsuke777 /

Autonomous Database Serverless(ADB-S) で Private Endpoint同士の DBLINK を作成する(Oracle Cloud Infrastructure)

  • ADB-SのPrivate Endpoint同士でDBLINKを設定できることが確認された
  • DBMS_CLOUDパッケージとDBMS_CLOUD_ADMINで認証情報とDBLINKを設定し、NSGのセキュリティルールを調整した
  • 接続先のPDB名を確認する際はV$PDBSビューを使用する必要があること、セキュリティルールの設定が必須であることが重要ポイント

@浅沼 敬 /

SupabaseのリードレプリカとOAuth 2.1 Serverで社内分析用リモートMCPを作ってみた

  • PostgreSQLのリードレプリカと専用ロールでAIに本番DBを直接接続しない分析用MCPサーバを構築
  • リードレプリカの物理的読み取り専用性と、analytics_roleの権限削減、RLSのロール束縛、列レベルGRANTでアクセス制御
  • BYPASSRLSを許可しないマイグレーションチェックと、CIでの継続的回帰テストで権限逸脱を防止する運用が必要

@jus1730 /

【DynamoDB】GAされたベクトル検索、15,000件のデータで OpenSearch と比べてみた

  • DynamoDBベクトル検索は通常の属性としてテーブルに格納され、Bedrockでベクトル化する
  • ベクトルは通常の属性として格納、Bedrockによるベクトル化、範囲フィルタ不可
  • 範囲フィルタが使えないため、価格帯や在庫数での絞り込みができないことに注意する