カテゴリー:データベース
-
データ型の種類と用途 Redis Strings Redisの最も基本データ型です。最大512MBまで格納できます。バイナリも格納できるため画像なども格納できます。また、加算減算コマンドもあります。 Redis Lists 「Red…
-
シーケンスオブジェクトとは? SQLの中でアクセスすることで指定した増分で増えていく数列を作成することが可能です。 実装 DBMSによって異なりますが、以下のような項目を指定することが可能です。 開始値 増分 最…
-
ほとんどのDBが以下3つを持っています。 データキャッシュ ログキャッシュ ワーキングメモリ 共通の特徴 ユーザーが用途に応じてサイズを変更することができる。 データキャッシュ SELECT系(…
-
10.10
【データベース】「JSON型」について
JSON型 EAVの代替手段として近年登場してきました。 MySQLであれば、5.7.8以降で使えるようになった新たなデータ型です。基本的にはカラムの汎用性を高めて変更に強くし開発効率を上げることができます。 ただ、EAVと同…
-
EAV(エンティティ・アトリビュート・バリュー) 複数の目的に使われるカラムを用意する設計です。例えば以下のようなテーブルになっていることです。 属性名 値 年齢 32 趣味 ゲーム 特技…
-
RDB(リレーショナルデータベース)の基本思想 リレーショナルデータモデルには以下の思想になっています。 データの重複がない。 実在する要素しかない。(NULLがない) 要素に順序(ソート)がない。 RDBMS…
-
ORDER BYの仕組み 全てのデータを取り出してから、ORDER BYで並び替えて、最後にLIMITで必要なデータを取り出します。 データを取り出してからバラバラの大量のデータを並び替えるため基本的にソートはかなり高コストな処理に…
-
よくある「削除フラグ」の問題点 ちなみに、「削除フラグ」だけなく「退会フラグ」、「課金状態」など類似の状況が度々業務システムでは発生しますので読み替えていただければと思います。 「削除されたデータ」と「削除されてないデータ」が同じテーブ…
-
09.26
【データベース】インデックスが効かないケース
検索結果が多い 検索結果がテーブル全体の20%未満(実務では10%未満を目標にすると良いです。)、正直選択率が10%を超えていた場合はインデックススキャンよりもフルスキャンの方が望ましいでしょう。 全体の件数が少ない 数万〜数十マン行…
-
過去の事実が損なわれる例 例1:料率の変更 消費税率を5%→8%に変更する対応をするために設定マスタの値を変更したとします。 消費税変更前に、購入があった本を返品する処理が動きました。その際に、8%で返品の計算が行われるため売り上…