私はデータベースに多くの画像を雑誌になるスクリプトを作成します。私はマガジンのユニークなイメージが欲しいので、イメージを取得することがデータベースに存在するかどうか毎回チェックする必要があります。そして、これは私の問題です。私のデータベースのレコードが〜1000000レコードのとき、どうすれば短時間でそれを行うことができますか?PHP/SQL - たくさんの画像を比較
$image = file_get_contents('http://server.com/imageX.jpg');
$counter = strlen($image);
// $counter => for example: 105188
が続いてデータベースにこの番号を保存し、INTO IGNORE INSERTを使用します:
私の考えでは、すべての画像の使用はstrlen()である。このイメージが追加される場合
INSERT IGNORE INTO `database` (`unique_counter`, `img_url`, `img_name`) VALUES (105188, 'http://server.com/imageX.jpg', 'imageX.jpg')
と - すべて大丈夫ですか?しかし、私はこのアイデアが~100枚の画像に適していると思います。私は1000000以上の画像を持ち、これらの画像のすべてが同じサイズ(幅と高さ)を持っていると、画像が同じでないときにも私のアイデアからのカウンターが同じになることがあります。
お手伝いできますか?私は非常に短時間でデータベースからの多くの画像をどのように比較できますか?
ありがとうございました。
はいけないファイルサイズを使用するメモリの制限に影響を与えることなく、それをハッシュを代わりに取得することができますmd5/sha1では、URLが一意であるだけでなく、 –
@LawrenceCheroneしかし、それは私の最初のポスト取得イメージ、ハッシュ、それからカウントしてもまだ考えています。私は1.000.000以上のイメージを持っていると、この方法は私にとってはうまくありません。同じ長い値を持ちます。 –
md5と言ってハッシュすると、衝突の確率は2^32になります。ファイルサイズは決してありません。 –