エンジンに依存します。一般的な常識は、読み取りは安価で、ここでは数バイトであり、中小規模のデータベースのパフォーマンスに大きな影響を与えないということです。
さらに重要なことは、主キーを使用する用途によって異なります。整数シリアルには、使用と実装が簡単であるという利点があります。また、シリアル化方法の特定の実装に応じて、ほとんどのデータベースはシリアル番号をオンザフライで取得するのではなく、固定された場所に保存するだけなので、迅速に導出できるという利点がSelect max(ID)+1 from foo
あります。
問題は、5文字のキーがどのようにあなたとアプリケーションに「意味のある価値」を提示するのかということです。この値はどのように作成され、増分シリアル番号を見つけるよりも多くの時間または短い時間がかかりますか。一部の整数で節約されるスペースはわずかですが、システムの大部分はこのスペースの節約を無視します。
パフォーマンスへの影響はありません。ただし、「キー」が優先できないため、キャラクタースキームでは自動エンジンが存在しないことが必要です。特定のドメインでは、人工キーに煩わされることなく、キー名として中国語、日本語、タイ語を使用してください。可能性のあるアプリケーションに対して一意性を保証することはできませんが、あなたのスコープでは、恐ろしく強制的な5文字の略語の代わりにそれらを使用する方がはるかに合理的です。何百万ものタプルに到達するまで、パフォーマンスに大きな影響はありません。
あるいは、特定の地域料理(広東料理、四川料理、シチリア料理、ウンブリア料理、カラブリア料理、ユカテカン、オアハカンなど)ではなく、原産国ごとに追跡する場合は、常にISO 3166コードを使用できます。
レシピが10,000個ある場合、5文字のキーと20文字のキーの差は増えませんか?
スペースは安い。たぶん、OLAP操作を行っている10,000,000のレシピを話しているとき。10kのレシピを使用すると、150kのスペースが表示されます。
しかし、再び、それは依存します。数百万のレコードがあり、それらを結合している場合、この些細な(マテリアライズドビューへの)何かのルックアップを非正規化することは理にかなっています。すべての実用的な目的のために、5文字のキーと可変長のキーの間の現代のマシンでの相対的な結合効率は非常に似ており、同一です。幸いなことに、私たちは豊富なCPUと豊富なディスクの世界に住んでいます。厄介なものは、文字ごとの比較ではなく、結合とクエリの非効率性が多すぎます。とはいえ、常にテストします。
このレベルのP&Tはデータベースに依存しているため、一般化は非常に困難です。データベースの2つのサンプルモデルを作成し、それらに推定レコード数を入力して、どちらが高速かを確認します。私の経験では、文字の長さは、優れたインデックス、優れたメモリ構成、およびその他の重要なパフォーマンスチューニング要素と比較して大きな違いはありません。