メモリまたはファイルシステムベースのテーブルにインデックスを付けると、その列に基づいて結果を選択または並べ替えるクエリが高速化されます。これは、インデックスがツリー構造 のように機能するためです。 また、検索距離はツリーの深さに依存します。これは、列の行数よりもはるかにゆっくりと増加します(対数)。
すべての列にインデックスを付けることでインデックスの目的が損なわれることはありませんが、挿入と更新が遅くなります。これらの変更により、そのテーブルのすべてのインデックスが更新されるためです。また、インデックスはデータベースサーバー上のスペースを占有するため、考慮すべきもう1つの欠点があります。
この質問に関連して読むべき他のSOの質問:
インデックス作成のベストプラクティス
インデックスとは
十分なインデックスの数