ファイル名とその他の詳細をテーブルに保存し、ファイル名の sha1 ハッシュを PK として使用する予定です。
Q1. SHA1 PK は、連続して増減する数値にはなりません。では、データベースが/search_intoを維持し、そのキーにインデックスを付けるために、より多くのリソースを消費しますか? データベースに40文字の値として保持することにした場合。
Q2. 私はここで読みました: https://stackoverflow.com/a/614483/986818データを binary(20) フィールドとして保存します。誰かがこの点で私にアドバイスできますか:
- a) この列を TYPE=integer、LENGTH=20、
COLLATION=binary、ATTRIBUTES=binary として作成する必要がありますか? - b) MySQL または Perl の sha1 値を変換してテーブルに格納する方法は?
- c) この 20 文字の値に重複の危険性はありますか?
**
- - - - -アップデート - - - - - - -
**
要件は、ファイル名でテーブルを検索することです。ユーザーがファイル名を指定すると、テーブルを検索し、ファイル名が存在しない場合は追加します。したがって、varchar(100) ファイル名フィールドでインデックスを作成するか、ファイル名の sha1 を使用して列を生成します。varchar フィールドのインデックス作成と比較して、MySql のインデックス作成が簡単になることを願っています。また、プログラムの sha1 値を sha1 列に対して使用して検索することもできます。何を言います?主キーまたは単にインデックス化されたキー: DBIx は PK を使用するのが好きなので、PK を選択します。PKまたはINDEX + UNIQは、システムのオーバーヘッドと同じ量になります(そう思いました)