質問: ファイルをデータベースに索引付けする データベースにたくさんのファイルやフォルダをインデックスする必要があります。ワークステーション1台あたりおよそ1000のファイル/フォルダと約100台のワークステーションが存在します。 私はこれらのファイルをデータベースに常に同期させていますので、ファイルがすでにデータベースに入っているかどうかを確認するためにデータベースにすばやく問い合わせる必要があります。 MD5でファイルの完全なパスをハッシュし、このハッシュフィールドをデータベースにインデックスすることを考えています。これは正しいアプローチですか?ハッシュ衝突は、1〜10百万件のレコードで発生する可能性がありますか? 私はMySQLまたはMongoDBの選択肢がありますが、私はMongoDBに傾いています。同意しますか?
回答: MySQLが使用する標準のB +ツリーインデックスは、あなたの目的に合ったものになります。グローバル書き込みロックを避けるため、MyISAMではなくInnoDBを使用していることを確認してください。 衝突が心配な場合は、衝突しないことがわかっているハッシュメカニズムを調べてください。 MurmurHash またはSHAバリアントを使用します。