SQL、特に SQL 2005 のキー、インデックス、および制約について一連の質問があります。私は約 4 年間 SQL を使用してきましたが、このトピックについて決定的な回答を得ることができたことがなく、ブログ投稿などには常に矛盾する情報があります。私が作成して使用するほとんどの時間テーブルには、Identity 列があります。は主キーであり、他のテーブルは外部キーを介してそれを指しています。
結合テーブルでは、ID がなく、外部キー列に対して複合主キーを作成します。以下は、私の現在の信念の一連のステートメントです。間違っている可能性があります。間違っている場合は修正してください。その他の質問.
だからここに行きます:
私が理解しているように、クラスター化インデックスと非クラスター化インデックスの違い (一意であるかどうかに関係なく) は、クラスター化インデックスがテーブル内のデータの物理的な順序に影響を与えることです (したがって、テーブルには 1 つしか存在できません)。非クラスター化インデックスは、ツリー データ構造を構築します。インデックスを作成するとき、クラスター化と非クラスター化を気にする必要があるのはなぜですか? いつどちらを使用する必要がありますか? ツリーを「再構築」する必要があるため、非クラスター化インデックスでは挿入と削除が遅いと言われました。クラスター化されたインデックスは、このようにパフォーマンスに影響しないと思いますか?
主キーは実際には一意のクラスター化されたインデックスにすぎないことがわかります (クラスター化する必要がありますか?)。主キーとクラスター化された一意のインデックスの違いは何ですか?
制約も見たことがありますが、実際に使用したり、実際に見たりしたことはありません。Constraints の目的はデータの整合性を強化することであるのに対し、Index はパフォーマンスを目的としているとのことでした。また、制約は実際にはインデックスとして実装されているため、「同じ」であることも読みました。これは私には正しく聞こえません。制約はインデックスとどう違うのですか?