ライセンス

構築のポイント

スキーマ・クエリ

  • 改善すべきクエリ
    • 実行回数(Count)の多いクエリ
    • 実行時間(Time)の長いクエリ
    • ロック時間(Lock)の長いクエリ
  • インデックスが使われていないクエリを調べ上げ、適切なインデックスを張っていく
  • テーブル分割
    • 1テーブルのレコード件数は可能な限り少なくする
    • レコード件数が多い場合は、期間やデータ種別で分割することを検討
  • ダブルバッファ
    • テーブルのJOINが頻繁に行われる場合は、JOINしたテーブルを作成することを検討
    • SELECTするキーによっては、キーとなる値を格納するカラムを用意して予め値をセットしておき、インデックス化しておいて、SELECTはそのインデックスで行う
  • インデックスの作成
    • それぞれの処理に特化したインデックスの作成を検討
    • インデックス的なテーブルの作成を検討
  • 集計処理についてはトリガ機能の活用を検討
  • 件数情報は冗長に持つ(○件以上のみ表示するようなアプリで有効)

サーバ

  • データサイズ<メモリ容量
  • 更新系と参照系を分ける
  • 参照系が多い場合はスレーブサーバを増設

その他

行指向・列指向

時系列データベース

InfluxDB

製品

超高速データベース

ほんとに高速かどうかは知りません。あしからず。

埋め込み用DB

理論

CRUD

CRUD図

マスタデータ/トランザクションデータ

正規化

キー・インデックス

物理削除と論理削除

結合

外部キー

トランザクション管理

設計

命名規則

  • Ruby on Rails の命名規則
    • テーブル名
      • ドメインオブジェクト名のスネークケースの複数形
        ex) users, user_images
    • カラム名
      • ドメインオブジェクトのプロパティ名のスネークケース
        ex) name, user_id

外部キー


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-06-09 (金) 10:54:22 (315d)