カテゴリー:データベース
-
【データベース】RDBはソートが苦手
11.23
RDBの元となっている考え方として「リレーショナルモデル」があります。 リレーショナルモデルの性質 重複がない。 実在する要素しかない(NULLがない) 要素に順序がない。 ただ、「RDBMS(リレーショナルデ…
-
【データベース】性能による分類
11.21
ターンアラウンドタイム重視 クエリの応答速度を重視したデータベースです。 用途 オンラインでオペレーションする用途(要は一般的な業務システムでCRUD操作を繰り返すなどのユースケース) 具体的な製品 NoSQL、RDB(OLTP)…
-
サロゲート(代理キー)キー 業務外の人工的なキーを主キーにすること。Railsとかでもデフォルトはこれになっていますし、昨今はこちらが主流のようです。 メリット SQLが簡潔になる。 テーブル間の依存関係が薄くなる。 主キーの体系…
-
【設計】インデックスが使えない場合の対処法
11.14
アプリ側で対処する。 もちろん、好き勝手に検索できるのが一番良いのですが、性能のためにはできるだけ譲歩をしてもらうのが望ましいでしょう。 できるだけ絞り込ませるようにする。 絞り込みが効くように「受付ID」で検索するときは、「受付日」…
-
【DB設計】「採番テーブル」について
11.14
昔は、IDENTITY列も、シーケンスオブジェクトもなかったのでよく使われていた手法になります。 これはテーブルで擬似的にシーケンスオブジェクトの技法を採用したものになります。 デメリット パフォーマンスは出ない。 …
-
IDENTITY列とは? テーブルの列として定義して、データがINSERTされるたびにインクリメントされた値が追加されます。 評価 機能的にも性能的にもシーケンスオブジェクトの劣化になります。 性能 シーケンスオブジェクトで指定可…
-
【DB設計】「シーケンスオブジェクト」について
11.14
シーケンスオブジェクトとは? SQLの中でアクセスすることで指定した増分で増えていく数列を作成することが可能です。 実装 DBMSによって異なりますが、以下のような項目を指定することが可能です。 開始値 増分 最…
-
【データベース】「実行計画」の確認
11.06
実行計画の見方 どのDBMSでも共通項目 操作対象のオブジェクト(MySQLなら「table」) オブジェクトに対する操作の種類(MySQLなら「type」) 操作対象となるレコード数(MySQLなら「row」) …
-
カタログマネージャとは? オプティマイザが実行計画を立てる際にオプティマイザに重要な情報を提供します。 カタログとは? DBMSの内部情報を集めたテーブル群になります。このカタログの情報を「統計情報」と呼んだりもします。 統計情報と…
-
ほとんどのDBが以下3つを持っています。 データキャッシュ ログキャッシュ ワーキングメモリ 共通の特徴 ユーザーが用途に応じてサイズを変更することができる。 データキャッシュ SELECT系(…