MySQL5.5にデータベースがあります。最終的には、そこに数千万のレコードがあると予想しています。
2つの列に一意の制約を追加すると、挿入にパフォーマンスの低下が生じることがわかります。問題は、いくらですか?そして、それを最小限に抑えるために何ができますか?
代わりに、単一の列に一意の制約がある場合、ペナルティは異なりますか?
MySQL5.5にデータベースがあります。最終的には、そこに数千万のレコードがあると予想しています。
2つの列に一意の制約を追加すると、挿入にパフォーマンスの低下が生じることがわかります。問題は、いくらですか?そして、それを最小限に抑えるために何ができますか?
代わりに、単一の列に一意の制約がある場合、ペナルティは異なりますか?
最初のペナルティはスペースです。データベースにインデックス テーブルが作成されます。1,000 万行の場合、これは些細なことではありませんが、大きな懸念事項ではないかもしれません。ただし、@zerkms が指摘したように、これらのインデックスを高速にするには、これらのインデックスをメモリ バッファーにキャッシュする必要があるため、問題が発生する可能性があります。
2 つの一意のインデックスを使用しても、単一の一意のインデックスに比べて挿入が大幅に遅くなることはありません。Unique 制約チェックは、Mysql が判断するのにかなり安価です。インデックスを追加しても指数関数的な速度低下は見られませんが (メモリの問題が発生しない限り)、新しいインデックスを追加するたびに線形の時間が増加します。