以下の「つぶやき」の表を検討してください:実際にはデータベース内の重複したつぶやきのログを効率的に検索して保持するにはどうすればよいですか?
tweet_id user_id text
----------------------------
1 1 lorem ipsum
2 1 lorem ipsum
3 2 pear
4 1 dolor
5 3 foo
6 1 dolor
7 1 dolor
8 3 bar
9 3 baz
10 4 happy
11 4 happy
12 2 apple
13 3 foo
14 4 happy
を、表には、約80,000ユーザーからのつぶやきの何百万人が含まれています。そこにいるユーザーの多くはスパムアカウントですが、手で識別するのは難しいです。経験則として、スパムアカウントは同じメッセージを少なくとも3回送信します。
duplicate_id user_id text cnt duplicate_id tweet_id
-------------------------------------- ----------------------
1 1 lorem ipsum 2 1 1
2 1 dolor 3 1 2
3 2 pear 1 2 4
4 2 apple 1 2 6
5 3 foo 2 2 7
6 3 bar 1 3 3
7 3 baz 1 4 12
8 4 happy 3 5 5
5 13
6 8
7 9
8 10
8 11
8 14
私は今、非常に簡単にソート上のインスタンスのためにCNT、およびユーザーが最も重複を投稿するかを確認することができます:私は、次の表の右に左に、「重複」や「duplicates_tweets」を埋めるためにしたい理由ですメッセージ。私の質問は、しかし、これについて最も効率的に行く方法です。言い換えれば、どのようなクエリがこれらのテーブルを満たすのに最も効率的でしょうか?また、SQLだけでも可能ですか?例えば、 "つぶやき"データベースからツイートを取得したり、重複をスキャンしたり、テーブルを埋め込んだり、次のツイートに移ったりするために、PHPを仲介者として使用する必要がありますか?私はこれが年を取って終わるのを恐れているので、どんな助けも大歓迎です!
つぶやく表は現状のままであり、研究プロジェクトの一部です。新しいツイートは挿入されません:-) – Pr0no