読者です 読者をやめる 読者になる 読者になる

by shigemk2

当面は技術的なことしか書かない

大量データを高速に扱う技術

読書ノート

インデックス性能の劣化要因

そもそも多数のインデックスを用意していることが更新性能の劣化を招いている。
なぜならインデックスはB+Treeのアルゴリズムを採用していることが多く、すべての
アクセスがランダムアクセスになってしまうから(HDDはランダムアクセスに弱すぎる)

インデックスサイズを何如にして小さくするかが問題となるわけだが、
それを常に実現できるわけではない。

というわけで、以下のようなものを利用するといいかもしれない。

レンジパーティショニング

テーブルおよびインデックスを物理的に1コでまとめて管理せずに、内部的には複数に
分割して管理する方法のこと。
(たとえばTwittermixiなどで参照されるデータは直近のものに限られるため、特定のパーティションに
分割してメモリを乗せたほうが効率的だったりする)

B+Tree以外のインデックス

高速なSSDの利用

トランザクション

レプリケーションとバックアップは別物であり、レプリケーションがダメになったらバックアップを
持ってくるという戦略が可能になる。(レプリケーションはDELETEなどの反映もすぐに反映されてしまうことが
あるため、DBに人的ミスが発生したらレプリケーションもおじゃんになってしまうことがあるから)

故にトランザクション機能を用いることで整合性のあるレプリケーションと一貫性のあるバックアップを保証
することが可能となる。