sql >> データベース >  >> RDS >> Sqlserver

クラスター化されたものとクラスター化されていないもの

    クラスター化インデックスと非クラスター化インデックスの違いは、クラスター化インデックスがデータベース内の行の物理的な順序を決定することです。 .つまり、クラスター化インデックスを PersonId に適用します。 行が PersonId によって物理的にソートされることを意味します これにより、これに対するインデックス検索が行に直接進むことができます (行の場所に誘導する非クラスター化インデックスではなく、余分な手順が追加されます)。

    そうは言っても、それは珍しい 主キーはクラスター化インデックスではありませんが、前代未聞ではありません。あなたのシナリオの問題は、実際にはあなたが想定していることとは逆です:unique が必要です 重複ではなく、クラスター化インデックスの値。クラスター化されたインデックスは行の物理的な順序を決定するため、インデックスが一意でない列にある場合、サーバーは重複するキー値を持つ行にバックグラウンド値を追加する必要があります (この場合、同じ値を持つすべての行PersonId ) 結合された値 (キー + バックグラウンド値) が一意になるようにします。

    私が提案する唯一のことはしない 代理キー (あなたの CourtOrderId ) 列を主キーとして使用しますが、代わりに PersonId の複合主キーを使用します およびその他の一意に識別される列または列のセット。ただし、それが不可能な場合 (または実用的でない場合) は、クラスター化されたインデックスを CourtOrderId に配置します。 .



    1. カスケード更新を行う方法は?

    2. PDO ::commit?の後に使用した場合のPDOStatement::rowCountの結果

    3. Oracleデータベースバックアップの概要

    4. 私はこのmysqlエラーコード#1089を取得し続けます