現在、約 7,000 万行の非常に大きなテーブルがあり、毎日数千単位で増加しています。このスキーマは毎日ひっくり返っているため、パーティション分割されたテーブルに移動して ddl を再設計しています。
テーブルは基本的にNOT NULL INTEGERS(いくつかの中型、いくつかのINT、いくつかの小さな)のコレクションであり、7列のセットに対して一意の制約が必要です(テーブルにはより多くの列があります)。これは、挿入ごとに計算するのに非常に高価であり、増加しますインデックスファイルのサイズは、私はそれを取得したことがないので、それをドロップして、何とかmd5/多分単純に値を連結することを好みます...まだわかりません.
問題は、このような大きな一意の番号を保持できる唯一の列タイプが varchar であることです。この PK が実際に優れているかどうか疑問に思っています。また、PRIMARY KEY 'part_key' (site_id,id) があるため、要約すると、パーティションの設計で一意の制約を使用する必要があります...これは新しい問題ではないと確信していますが、私はそうではありませんでした。 2つを比較するベンチマーク/ドキュメントを見つけることができません.この問題を経験した人はいますか? 問題は、私がPKまたは一意のフィールドのハッシュ値だけで取得していない場合、PKが8つのフィールド全体である必要があることです(このテーブルにはおそらく1億行以上あることに注意してください) PS:取得は主に7 列のうち 2 列で実行 ディスク サイズは問題ではありません。