質問: 「クラスター化インデックス」と「非クラスター化インデックス」の違いがいまひとつピンとこないので、 できる限りわかりやすく教えていただきたいです(例え等あると有り難いです)。
回答: 以下のテーブルに、 ``` id|name ``` 次のデータを投入します。 ``` 01,'cccc' 02,'bbbb' 03,'aaaa' ``` idを指定した索引をクラスター化インデックスとすると、DISK上には次の順序でレコードが書き込まれます。 ``` id|name --+---- 01|cccc 02|bbbb 03|aaaa ``` nameを指定した索引をクラスター化インデックスにすると、今度はこうなります。 ``` id|name --+---- 03|aaaa 02|bbbb 01|cccc ``` つまり、クラスター化インデックスに指定されたカラムの順序でレコードはDISKに配置されます。そしてこの順序により、SQLのパフォーマンスも変化します。たとえばORDER BY nameを指定した複数行を参照するSQLの場合、nameを指定したインデックスをクラスター化インデックスに設定し、これを使用する実行計画をオプティマイザが選択すれば、次のレコードが常にDISK上の近い位置(ブロック)に存在するため効率よくI/Oを行うことができます。