達人に学ぶDB設計
https://images-na.ssl-images-amazon.com/images/I/61bMuQNwkoL._SX351_BO1,204,203,200_.jpg
スキーマ
https://gyazo.com/8c4aa1e280c17f1628bd23a4920e4fd6
DB設計
https://gyazo.com/ea5d73a707ef13d524ea3e2c32d3645c
ハードウェアのサイジングについて
キャパシティとパフォーマンスの2点を考えて行う
ディスクのI/Oが8割の問題になっている -> ハードウェアは重要
PAID
B-tree
1. 均一性
平衡木によるもの
2. 持続性
O(logN)
3. 処理汎用性
O(logN)
4. 非等値性
B-tree構築時にキー値をソートしている
木を構築しているゆえに(≦、≧)などの非等値に関しても有効に働く
一方で(!=)はすべての木をみるため有効に働かない
5. 親ソート性
インデックス
インデックスのはたらかないとき
インデックスレスに演算をする
索引数にSQL関数を使う
ISNULLを使っている -> NULLはインデックスを保持していない
否定形
OR -> IN を使うと回避できる
あいまい検索での中間、後方一致のとき -> like 'hoge%' のときのみインデックスがきく
暗黙の型キャスト
統計情報の収集
パーティション機能