第13章 リファクタリングとは


リファクタリングの種類

リファクタリングとは?

一つ以上のテーブルの設計を変更する作業のこと。

リファクタリングの手順

バックアップ
変更
データ移行
トリガー作成
デプロイ
トリガー削除

リファクタリングして性能堕ちる場合もある。→ベンチマークテスト
ベンチマークテスト → スペック/os/データサイズまでも本番と同様のテスト環境で速度と性能をチェック 

マイグレーションファイルでDBの履歴を管理

トリガー

移行期間は同じデータが二箇所存在することになる。 → 面倒 → トリガー
2つのテーブル間で双方向にトリガーをつけておけば、データが同期される。

インデックス 

カラム名 

not null制約 

→ 見極めが大切

主キーの定義変更

→ 規約出ない時、

主キーが一意性制約を満たせることが重要 

無損失分解(正規化)

→ トリガーで同期

テーブルの垂直分割と統合

複数のテーブル間で直交性が満たされていない場合、テーブルの統合が必要。

リファクタリングのベストプラクティス

カラムではなくテーブルを追加する。

既存のテーブルにカラムを追加してしまいがちですが、1NFを満たさなくなる可能性があります。

select * を使わない

→ railsだと考慮できない。全部fetch allしてしまう。

1つのDBには1つのアプリケーションからしか直接アクセスしない。

→ API使え