多くのテキストを格納するデータベースを計画しています。 (ブログ記事、ニュース記事など)データベースには、タイトル、コンテンツ(最大50K文字)、日付、リンク、言語フィールドが必要です。同じコンテンツは1つのリンクでは発生しません。古いコンテンツ(30日より古いなど)は削除されます。PostgreSQL:大きなデータベースに主キーを定義する
ここで問題は主キーです。私はちょうど自動増分(SERIALタイプ)フィールドを設定してプライマリキーとして使用することができます。しかし、それはフィールドが目的を果たすのではなく、主キーとなるため、ディスクスペースの浪費と馬鹿に思えます。 (そしてフィールドは最終的に不足する可能性がありますか?)また、常に新しいパフォーマンスの問題があります。挿入された新しい行の内容を重複してチェックする必要があります。だから私が思い付いたプライマリキーのもう一つの解決策は、コンテンツ+リンク値のsha256ハッシュを計算し、それを新しい 'ハッシュ'カラムに入れてそれをプライマリキーとして使うことです。 1つの石で2羽の鳥。もちろん、その問題はハッシュの衝突です。それは大きな脅威ですか?
私はPostgreSQLについての経験はほとんどありません。DBMSの経験はほとんどありませんので、高速道路上のカタツムリのパフォーマンス特性(恐ろしい比較)を持つデータベースを作成する前に、もう一度ご意見ください。
大きなデータベースでの経験があれば、ここで手伝ってください。私の状況では、64文字の文字列をプライマリキーフィールドとして設定するのが良いアイデアですか? (私は印象の下だから、一般的に、これは回避される)
は、あなたのテストでは、「他のパフォーマンスの問題を:それぞれの新しい行の内容を挿入する必要の[原文]重複をチェックする」が含まれていましたか? – onedaywhen