クローリングした内容の高速重複判断方法
目的
クローリングしたデータがデータベースにすでに存在しているかどうか知りたい際に、
対照(select id from database where content like '%クローリングしたデータ%')で重複判断するのは効率が悪いため、
もっと効率が良い判断方法です。
流れ
1.クローリングされたデータをハッシュ(hash)化します。
そのハッシュは数字と英文字で組み合わせた文字列です。SHA-512バリエーションを使い、64ビットに拡張されています
2.ハッシュ文字列の列をユニークインディクスします。
3.クローリングした内容をハッシュする
mysql関数を使います
SHA2('My secret passphrase',512)
4.insert ignore into を使ってデータベースに追加します
insert ignore into (content,content_hash) values ('クローリングしたデータ',SHA2('クローリングしたデータ',512))
5.content_hashはユニークインディクスなので、重複があれば、エラーと判断し、重複したデータは無視(insert ignore into)で処理します。
スピードが速い、誤差が少ないことはメリットです。
参考
https://dev.mysql.com/doc/refman/8.0/en/encryption-functions.html#function_sha2
https://dev.mysql.com/doc/refman/8.0/en/insert.html
Author And Source
この問題について(クローリングした内容の高速重複判断方法), 我々は、より多くの情報をここで見つけました https://qiita.com/yon_engineer/items/1a1b013735d97cb65cea著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .