#データベース
@adgjmptw0 /
- Push通知の設計でDB問い合わせが1人あたり最大11回になる構造に気付いた
- 通知対象者ごとにDBアクセスが繰り返され、1,000人で11,000回になる
- 設計段階で100倍になった場合の問い合わせ回数を確認する必要がある
@Western24 /
- Oracle DatabaseのVPDとDeep Data Securityのアクセス制御機能の違いが説明されている
- VPDはセッション情報に基づく行アクセス制御、Deep Data Securityはエンドユーザー向けデータ権限の和集合制御
- VPDはアプリケーションユーザー情報の伝播が必要で、Deep Data Securityは自動的なコンテキスト伝播が可能で設定が簡易
@hamorita /
- Database Link使用時のADBからBaseDBへのアクセスでMVが最も高速に結果を返す
- 表とビューはほぼ同じ性能、MVはBaseDB側の処理を回避してADB側で完結する
- MV作成時のBaseDB負荷が本番環境では問題になる可能性がある
@Masaki /
- PostgreSQLでインデックスが使われないのは4つの関門を通過できなかったから
- 場所(テーブル跨ぎOR)、形と演算子(関数包み)、安全性(RLS)、キー(トライグラム不足)の4関門
- RLS有効時はILIKEがインデックス条件にならない、検索語が短すぎる場合はトライグラムが作れない
@mizzsugar /
- 明細の変更履歴を保存する3つの方式を比較し、要件に応じた選択肢を提示した
- 方式1はバージョン付き履歴テーブル、方式2は画面スナップショットのJSON保存、方式3はスナップショット+差分メタデータ管理
- 監査・ロールバックが必要な取引データには方式1が適切で、表示速度優先なら方式3が実用的
@k-mizuno-aws /
- EC2上のMySQLをAmazon QuickにVPC接続する手順が解説されている
- VPC接続にはセキュリティグループとIAMロールの設定が必要で、MySQLのデータソースを追加する際にはプライベートIPを指定する
- セキュリティグループで最小権限を設定し、IAMロールに必要なポリシーをアタッチする際の注意点が記載されている
@natsumi_a /
- S3に格納されたCSVデータをAurora MySQLにインサートする手順が公開された
- IAMロールの設定とパラメータグループの変更、LOAD DATA FROM S3コマンドを使用
- Aurora MySQLでS3データを読み込むにはパラメータグループの設定が必須で、再起動が必要な点に注意する
@o68606007 /
- 冪等性を担保するためのDB設計でunique制約を追加した
- idempotency_keyにunique制約を設定し、二重登録を防ぐ、Supabaseの画面操作で制約を追加可能
- 同じidempotency_keyが2回以上登録されないよう制限されるため、リトライ時の重複処理を防げる
@otait /
- N+1問題を回避するために巨大JOINクエリを組んだ結果、メモリを食い潰すシステム障害が発生した
- JOINクエリによるデータ件数の爆発とORMの重複データ処理が原因。IN句を使ったクエリ分割が有効
- JOINクエリのデータ量とメモリ負荷を意識し、IN句によるクエリ分割を検討すべき
@加藤雅人 /
- MariaDBで複数のインデックスとIN句の要素数が増えると最適化処理時間が増加する
- IN句の要素数が増えるとrangeの数が乗算で増加し、複数のインデックスがあると評価候補が増える
- IN句の要素数が100になると最適化処理時間が10倍以上増加し、optimizer_max_sel_arg_weightで制限が必要になる
@o68606007 /
- SupabaseのConnection Poolサイズが15でも16本目の接続が成功した
- Pool size15とDB接続数15、16本目の接続で119msのBEGIN時間と162msのSELECT時間
- Connection Poolを増やしてもメモリとCPU負荷が増える可能性があるため、状況に応じた設定が必要
@Kanaru Isoda /
- RustのORMライブラリToastyがSQLとNoSQLデータベースをサポートする一貫したAPIを提供
- アプリケーションスキーマから自動生成されるデータベーススキーマ、リレーションの属性指定、DynamoDBとの互換性
- DynamoDBでは一意制約を独立したテーブルで管理し、トランザクションでレコードの重複をチェックする仕組みがある。
@萩原 舞 /
- Amazon Redshift が Agent Toolkit for AWS と統合し、AIエージェントによるデータウェアハウス管理を支援
- Redshift skills と AWS MCP サーバーの統合、10MiBレコードサイズサポート、OAuth 2.0認証対応
- AIエージェントによるデータ操作が可能になり、大容量データ処理やセキュアなレプリケーションが強化される
@kanakani /
- ADBのSpatial機能で点群から3Dメッシュを生成しOBJ形式でObject Storageに保存
- SDO_PC_PKGで点群作成、SDO_TIN_PKGでメッシュ生成、DBMS_CLOUDでObject Storageにアップロード
- ADB ServerlessではOracle JVMが必要で、メッシュ生成にはブロックサイズや精度の設定が重要
@菊地 /
- BigQueryでストアドプロシージャを導入することで、条件分岐やループ処理、動的SQLが可能になる
- IF文による条件分岐、WHILE文によるループ処理、EXECUTE IMMEDIATEによる動的SQL生成が可能、変数と一時テーブルの利用もサポート
- ストアドプロシージャの実行時間は最大6時間で、ループ処理はコスト高騰のリスクがあるため、バッチの粒度を設計する際の注意が必要
@wxy_zzz /
- Databricksの認定済みタグをdbtで管理する方法が紹介されている
- dbt-databricksアダプターのdatabricks_tagsでタグを付与、削除はpost-hookで補う
- タグの削除はdbt設定からではなくpost-hookで行う必要がある
@uo /
- Spannerのback joinはindexにない列を取得するためにベーステーブルへ引き直す動作で、応答時間に影響する
- indexスキャン後にベーステーブルを引き直すDistributed Cross Applyと、STORINGでindexを広げる方法が主な対処法
- back joinの回数を減らすにはindexのキー列に条件やソート列を含め、LIMITの後に移すことでコストを抑えるのが効果的
@ora_gonsuke777 /
- ADB-SのPrivate Endpoint同士でDBLINKを設定できることが確認された
- DBMS_CLOUDパッケージとDBMS_CLOUD_ADMINで認証情報とDBLINKを設定し、NSGのセキュリティルールを調整した
- 接続先のPDB名を確認する際はV$PDBSビューを使用する必要があること、セキュリティルールの設定が必須であることが重要ポイント
@浅沼 敬 /
- PostgreSQLのリードレプリカと専用ロールでAIに本番DBを直接接続しない分析用MCPサーバを構築
- リードレプリカの物理的読み取り専用性と、analytics_roleの権限削減、RLSのロール束縛、列レベルGRANTでアクセス制御
- BYPASSRLSを許可しないマイグレーションチェックと、CIでの継続的回帰テストで権限逸脱を防止する運用が必要
@jus1730 /
- DynamoDBベクトル検索は通常の属性としてテーブルに格納され、Bedrockでベクトル化する
- ベクトルは通常の属性として格納、Bedrockによるベクトル化、範囲フィルタ不可
- 範囲フィルタが使えないため、価格帯や在庫数での絞り込みができないことに注意する