ホームページ >バックエンド開発 >PHPチュートリアル >データの重複部分を見つける
今、一まとまりのアドレス帳データ(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 時間以上かかりましたが、まだ半分しか完了していません
このデータのバッチの重複部分を見つけるためのより良い方法、またはスクリプトを最適化する方法があれば教えてください 皆さんありがとう
返信内容: 今、一まとまりのアドレス帳データ(10,000人以上のアドレス帳)があるので、2人それぞれのアドレス帳の重複部分(つまり、誰が誰のアドレス帳と重複しているか)を調べて比較する必要があります。この 2 つを合わせます たとえば、ABCDE の 4 つのアドレス帳があり、AB AC AD AE BC BD BE CD CE DE の間のアドレス帳の重複エントリの数を調べます
これはデータテーブルであり、10,000以上の個人アドレス帳があります
人のアドレス帳は100件から1000件まであります
私が現在やろうとしていることは、全員のアドレス帳を一度に取り出し、最初の人のアドレスを残りのアドレス(foreach配列、内部にforeachがネストされている)と比較し、次に2番目の人のアドレス帳を比較することです。残りはみんなの比較など
その後、スクリプトを実行します。スクリプトの実行には 20 時間以上かかりましたが、まだ半分しか完了していません
メモリと CPU の使用率も比較的高く、スクリプトの効率も低すぎます。
このデータのバッチの重複部分を見つけるためのより良い方法、またはスクリプトを最適化する方法があれば教えてください
皆さんありがとう
リーリー