ホームページ >バックエンド開発 >PHPチュートリアル >データの重複部分を見つける

データの重複部分を見つける

WBOY
WBOYオリジナル
2016-08-31 08:54:53907ブラウズ

  1. 今、一まとまりのアドレス帳データ(10,000人以上のアドレス帳)があるので、2人それぞれのアドレス帳の重複部分(つまり、誰が誰のアドレス帳と重複しているか)を調べて比較する必要があります。この 2 つを合わせます
    たとえば、ABCDE の 4 つのアドレス帳があり、AB AC AD AE BC BD BE CD CE DE の間のアドレス帳の重複エントリの数を調べます

携帯電話番号が重複している場合、これら2つのアドレス帳が重複しているとみなされます
これはデータテーブルであり、10,000以上の個人アドレス帳があります
データの重複部分を見つける

データの重複部分を見つける

リストフィールドに保存されているjsonがアドレス帳の内容です
人のアドレス帳は100件から1000件まであります
データの重複部分を見つける

私が現在やろうとしていることは、全員のアドレス帳を一度に取り出し、最初の人のアドレスを残りのアドレス(foreach配列、内部にネストされたforeach)と比較し、次に2番目の人のアドレス帳を比較することです。残りはみんなの比較など

データの重複部分を見つける
データの重複部分を見つける
データの重複部分を見つけるその後、スクリプトを実行します。スクリプトの実行には 20 時間以上かかりましたが、まだ半分しか完了していません

メモリと CPU の使用率も比較的高く、スクリプトの効率も低すぎます。

このデータのバッチの重複部分を見つけるためのより良い方法、またはスクリプトを最適化する方法があれば教えてください 皆さんありがとう

返信内容:

今、一まとまりのアドレス帳データ(10,000人以上のアドレス帳)があるので、2人それぞれのアドレス帳の重複部分(つまり、誰が誰のアドレス帳と重複しているか)を調べて比較する必要があります。この 2 つを合わせます たとえば、ABCDE の 4 つのアドレス帳があり、AB AC AD AE BC BD BE CD CE DE の間のアドレス帳の重複エントリの数を調べます

  1. 携帯電話番号が重複している場合、これら2つのアドレス帳が重複しているとみなされます

これはデータテーブルであり、10,000以上の個人アドレス帳があります

データの重複部分を見つける

リストフィールドに保存されているjsonがアドレス帳の内容です

データの重複部分を見つける人のアドレス帳は100件から1000件まであります


私が現在やろうとしていることは、全員のアドレス帳を一度に取り出し、最初の人のアドレスを残りのアドレス(foreach配列、内部にforeachがネストされている)と比較し、次に2番目の人のアドレス帳を比較することです。残りはみんなの比較など
データの重複部分を見つける



データの重複部分を見つけるその後、スクリプトを実行します。スクリプトの実行には 20 時間以上かかりましたが、まだ半分しか完了していません
メモリと CPU の使用率も比較的高く、スクリプトの効率も低すぎます。 データの重複部分を見つけるこのデータのバッチの重複部分を見つけるためのより良い方法、またはスクリプトを最適化する方法があれば教えてください
データの重複部分を見つける皆さんありがとう

リーリー

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。