Try using it in your preferred language.

English

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar
translation

これはAIが翻訳した投稿です。

제이의 블로그

物理データモデリング

言語を選択

  • 日本語
  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar

durumis AIが要約した文章

  • 論理データモデリングがリレーショナルデータベースに適したテーブルを作成する作業であるのに対し、物理データモデリングは実際に使用されるテーブルを作成する作業であり、ストレージスペースの効率性とパフォーマンスの最適化を考慮します。
  • 遅いクエリ、インデックス、キャッシュなどを活用してパフォーマンスを向上させることができます。パフォーマンスの問題が継続する場合は、データベース構造を変更するデノーマライズを検討できます。
  • 正規化は、書き込み作業の利便性のために読み取りパフォーマンスを犠牲にするものですが、デノーマライズはパフォーマンスの低下を引き起こす可能性があるため、問題を正確に把握して慎重に判断する必要があります。

論理的データモデリングがリレーショナルデータベースに適した理想的なテーブルを作成する作業だった場合、物理的データモデリングでは理想的なテーブルを実際に使用可能なテーブルにする作業を含め、ストレージ空間の効率的な使用方法、オブジェクトパーティショニング設計、最適なインデックス設計など、パフォーマンス向上と最適化を重点的に考慮します。

サービス運用時にボトルネックを引き起こすスロークエリを見つける方法は、DBMSの種類によって異なります。スロークエリをキーワードに検索して見つける必要があります。

パフォーマンスのために検討すべき事項

スロークエリ(Slow Query)の検出

  • スロークエリは、DBMSが要求されたクエリを実行するときに、一定時間実行されないクエリのことです。
  • ボトルネックを引き起こすスロークエリを見つけ、問題が何であるかを特定して解決します。

インデックス(Index)

  • インデックスは、行に対する読み取りパフォーマンスを飛躍的に向上させます。
  • ただし、書き込みパフォーマンスが低下し、より多くのストレージ空間を使用します。


キャッシュ(Cache)

  • アプリケーションレベルでデータベースの負荷を軽減する方法
  • 同じ入力の要求応答をストレージ空間に保存しておいて、応答する方式です。


上記の方法でパフォーマンス問題が解決しない場合は、逆正規化または反正規化と呼ばれる作業を実行します。

テーブルの構造を手術して修正します。

正規化のトレードオフ

正規化は、書き込み作業の利便性のために、読み取りのパフォーマンスを犠牲にするようなものです。正規化すると、複数のテーブルに分割されたデータを結合するクエリを作成する必要があります。

しかし、正規化が必ずしもパフォーマンスを低下させるわけではないため、逆正規化を実行する前に、問題を正しく把握して確認する必要があります。

以下のリンクは、これから取り上げる逆正規化について詳しく解説している優れた記事です。

逆正規化、反正規化(denormalization)

最初に覚えておくべきことは、正規化を実行した後に逆正規化を実行する必要があるということです。最初から非正規化されたテーブルが良いわけではありません。

とりあえず、今は必要な知識ではないので、覚えておくだけにします。

テーブル逆正規化技法

出典 - DataOnAir - 反正規化とパフォーマンス

カラムの逆正規化

出典 DataOnAir - 反正規化とパフォーマンス

関係の逆正規化

出典 - DataOnAir - 反正規化とパフォーマンス

Jay
제이의 블로그
1인분이 목표인 초보 개발자
Jay
論理的データモデリング 論理的データモデリングは、概念的データモデリングをリレーショナルデータベースパラダイムに合わせて変換するプロセスであり、1:1、1:N、N:Mの関係を処理し、正規化によってデータの整合性を確保します。1NF、2NF、3NFを経てテーブルを精製し、部分従属と推移的従属を削除します。

2024年4月9日

リレーショナルデータモデリング リレーショナルデータモデリングは、現実世界の情報をテーブルとデータに分割するプロセスであり、要件分析、概念データモデリング、論理データ モデリング、物理データモデリングの段階を経ます。カラスの足記号を使用したERDを通じて概念モデリングを視覚化し、SQL文で実際の データベースに適用できます。

2024年4月8日

カンバンボードプロジェクト2 論理的データモデリング 概念的データモデリングERDを基に、論理的データモデリングを行う方法を段階的に説明します。 正規化プロセスで発生する問題点と解決策を提示します。特に、Ticketテーブルのauthor_idとresponsibility_idを 分離する必要があるかどうかという問題点と解決プロセスについて詳しく説明します。

2024年4月9日

[DB] キャッシュを設定する基準 頻繁に読み込まれるが、書き込みはほとんど行われないデータをキャッシュする方法に関する実務ガイドです。データドックなどのAPMを活用してRDBのクエリ 呼び出し履歴を分析し、クエリが多いが更新クエリが少ないテーブルをキャッシュ対象として選択する方法を紹介します。
제이온
제이온
제이온
제이온
제이온

2024年4月25日

[非専攻、開発者として生き残る] 14. 新卒開発者がよく聞かれる技術面接内容まとめ 新卒開発者向けの技術面接準備ガイドです。メインメモリ領域、データ構造、RDBMSとNoSQL、手続き型とオブジェクト指向、 オーバーライドとオーバーロード、ページ置換アルゴリズム、プロセスとスレッド、OSI 7層、TCPとUDPなど、面接でよく登場する概念を 説明します。
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

2024年4月3日

[Java] 同期化コレクション vs 並列コレクション Java でマルチスレッド環境でコレクションを使用する際に、同期化問題を解決するためのさまざまな方法とその長所と短所を比較分析しました。 Vector、 Hashtable、Collections.synchronizedXXX などの同期化されたコレクションと、CopyOnWriteArrayList、 ConcurrentHashMap、ConcurrentLinkedQueue などの並列コレクションの特徴、性能の違い、および各コレクションの適切な 使用シナリオを紹介します。
제이온
제이온
제이온
제이온

2024年4月25日

[Javascript] オブジェクトの構造 (V8) JavaScriptのObjectは、V8エンジンでは、状態に応じて、構造体のように最適化されたFastモードと、ハッシュマップとして動作するDictionary モードに変換されます。Fastモードは、キーと値がほとんど固定された形式で高速ですが、新しいキーが追加されたり、要素を削除したりするなどの操作が行われた場合、 Dictionaryモードに切り替わり、速度が遅くなる可能性があります。
곽경직
곽경직
곽경직
곽경직
곽경직

2024年3月18日

[Effective Java] アイテム6. 不要なオブジェクト生成を避ける Javaで不要なオブジェクト生成を減らす方法に関するガイドです。String、Booleanなどの不変オブジェクトはリテラルを使用し、正規 表現はPatternインスタンスをキャッシュするのが最適です。また、オートボクシングはパフォーマンスの低下を引き起こす可能性があるため、基本型を使用するのが 最適です。 詳細は「Effective Java」を参照してください。
제이온
제이온
제이온
제이온

2024年4月28日

[Concurrency] Atomic Operation: メモリフェンスとメモリオーダリング このブログ投稿では、アトミック演算でのメモリの順序付けを考慮する方法と、Orderingオプションの重要性を説明します。Relaxed、 Acquire、Release、AcqRel、SecCstなど、さまざまなOrderingオプションの詳細と、各オプションの長所と短所、および使用 時の注意点について、例コードと共に詳しく説明します。
곽경직
곽경직
곽경직
곽경직
곽경직

2024年4月12日