skillup

技術ブログ

Database

データベース設計のアンチパターン 重すぎるOLTP+Date型不統一+データ量想定が甘い

投稿日:

重すぎるOLTP

※OLTP=オンライントランザクションシステム(多数の端末から中央のデータベースにアクセスするタイプのシステム)

デメリット

速度を要求されるシステムなのに、遅いためユーザー離脱などにつながる。

対策

  • 早い段階でのプロトタイプでの性能確認(大量データでの性能確認)
  • 業務要件自体が無理
  • 非正規化
  • 実行計画での早期確認
  • 早い段階での集計表作成

DATE型の型の不統一

デメリット

規約が不十分なため、yyyymmddとyyyymmddhhmmssが混じるなど

対策

  • 規約の再定義
  • 時分秒があるときは00:00:00を入れると事故(意図した検索結果が出力されない)の元になる
  • 日付を検索するときは原則、時分秒までいれていいとおもう(個人的には。)
  • check制約を入れるのもあり
  • データベースだけではなく、画面表示なども混乱することが多い(ライブラリなどで統一した表記にしておいたほうがいいかも)

データ量の想定が甘い

デメリット

システム構築後数年たって、データ量が増えすぎ、パフォーマンスが劣化する

いざ削除しようと思っても、削除していいデータかどうかわからず削除ができない

対策

  • データ削除機能(物理削除)を持たせる
  • 概算値でいいので、データの蓄積量を決める
  • 設計段階でのCRUDの意識

-Database
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

MySQLのメモリ設定

実務で結構サーバーをヘビーに使われるお客さんがいて、SQLが遅くなったりとしています。 なんとか対策しないといけないので、いろいろと調査をいます。 それで今回はMySQLのメモリ問題など。 MySQL …

no image

DBの基礎 テーブルとは

CSSを学習したあとはデータベースの学習などを。 参考図書:「達人に学ぶDB設計指南書」基本的にはこれを読んでいきます。が、現状よくわからないところは飛ばしていきます・・・ Contents1 テーブ …

no image

EXISTSについて

今回はEXISTSについてです。 実務では伝票と明細との検索関連の処理で結構出てきます。 なお、達人に学ぶ~では論理学について少しふれており、この領域を本気で理解する場合は論理学を勉強する必要がありま …

no image

SQLクエリ比較

クエリの比較 SQLにおいては全く同じ結果を返すのであってもその検索結果が異なるということはよくあります。 例えば下記のようなテーブルがあった場合 co_cd | district —&# …

no image

Firebaseでのミニアプリデプロイ

KVS的なDBを使うかもしれず、firebaseの復習をしております。以前、firebaseのサンプルなどちょこちょこ動かしましたが、firebaseに登録をしただけでデプロイまではしておりませんでし …