インデックスの設計戦略

昨日の 理論から学ぶデータベース実践入門 読書会 では「第11章 インデックスの設計戦略」の読み合わせが行われました。「理論から学ぶ・・・」も9章以降、実装よりの話が出てきますが、この章ではより実装に踏み込んだ内容になってます。漢のヒトのブログでは以下の記事も合わせて読むといいのではと思う。

関連記事:知って得するInnoDBセカンダリインデックス活用術!


昨日はインデックスの話だけあってか、新たな DBA が読書会に参加。各インデックスの詳細について経験を交えた話を伺え、なかなか面白かったです。



特に面白いと思ったのが、ビットマップインデックス

これ、本で読んでるだけじゃなかなか理解できず、また更新時にレコード量に応じてインデックス構築にかかる時間が O(n) で増えるため、実際に使用用途あるのかはなはだ疑問でしたが、ビット演算を用いて計算できるため非常に高速で、データウェアハウスや大学の研究のように更新を殆ど必要としない分析・解析系で主に使われてるとの話を伺い、たいへん納得できました。


関連記事:索引の使い分けでパフォーマンスを向上できるケース 〜 ビットマップ索引の使用


またパーティーションの作成の話も面白かったですね。以下、昨日の読書会で議論のネタになった記事や収穫記事を幾つか紹介させて頂きます。


MySQL 5.7 で追加された擬似関数インデックス「generated column」のお話


計測用にMySQLのキャッシュを空にする「SQL_NO_CACHE」オプション


MySQLパーティショニングにまつわるお話