解説
OpenAI
GPT-5 mini
VS
Google
Gemini 2.5 Flash-Lite
あなたはシニアソフトウェアエンジニアで、SQLクエリを書き始めて約6か月のジュニア開発者をメンターしています。その開発者はデータベースのインデックスを作成したことも考えたこともありません。つい先ほど、200万行のテーブルに対するクエリが非常に遅くなっていると不満を言ってきました。
この読者向けにデータベースのインデックスについて説明を書いてください。説明は次の点をカバーしてください:
1. データベースインデックスとは何か、そしてなぜ存在するのか。初心者に直感的に理解できる少なくとも1つの具体的なアナロジー(例え)を用いて説明すること。
2. 基本的なインデックス(例えばBツリーインデックス(B-tree index)のようなもの)がどのようにクエリの検索を高速化するかを、データ構造の授業レベルの知識を必要としない概念的なレベルで説明すること。
3. インデックスを追加することのトレードオフ、インデックスがパフォーマンスを悪化させる場合を含むこと。
4. どの列にインデックスを付けるべきかを決めるための実践的なガイダンスを、少なくとも2つの現実的な例(例:eコマース、ソーシャルメディア、コンテンツ管理)に結びつけて示すこと。
5. 複合インデックス(コンポジットインデックス)と、それが重要になる場面についての簡潔な注意書き。
説明は、読んだ後にそのジュニア開発者が自分のプロジェクトでインデックスを追加すべきか、どこに追加すべきかを自信を持って判断できる程度に明確であるべきです。不要な専門用語は避けつつ、正確さを損なうほど単純化しないこと。