InnoDBはクラスタインデックスという構造になっている。今日はクラスタインデックスがどういうことかということを、皆さんに理解して頂きたい。もっとも理解して頂きたいポイントは「セカンダリインデックスのリーフノードには主キーの値が含まれている」ということだ。 主キーの構造InnoDBの主キーは次の図のように「データが主キーのリーフノードに含まれる」という構造になっている。このような構造をクラスタインデックスという。 このような構造になっていることには利点と欠点があるが、大きな利点は主キーの値で検索をすると非常に高速だということだ。主キーのリーフノードにたどり着いたときには、既にデータのフェッチも完了している。データとインデックスが別々に格納されているタイプのストレージエンジンでは、インデックスからデータの位置を読み取って、その後データファイルからデータをフェッチする。このように二段階の操作が
![知って得するInnoDBセカンダリインデックス活用術!](https://cdn-ak-scissors.b.st-hatena.com/image/square/b9f47c0d9a13f57c6384f126a073778b51497779/height=288;version=1;width=512/https%3A%2F%2Fblogger.googleusercontent.com%2Fimg%2Fb%2FR29vZ2xl%2FAVvXsEjnJZeTD6_kWDkSuCabr_YO9SOf9J9nsvA5IzZ-RgqPBW7wuW58vcjb2WYMhi50KOYLz9d6bMncHE2q6froLZyhiNOAIDq6iWjY2Rg_aFRq_9HLYI16OwTKIbVZT2U7gtPAIsmbgeIcyg4%2Fw1200-h630-p-k-no-nu%2FC%3A%255Cfakepath%255Cinnodb_clust_index.png)