1. 100 万レコードのテキスト ファイルから、重複が最も多い上位 10 件を抽出します。
サンプルテキスト:
098
123
234
789
……
234
678
654
123
アイデアを探しています
テーブルにインポートして使用しますSQL統計、それが可能かどうかはわかりません。あなたが試すことができます。
それをテーブルにインポートしてから、統計に SQL を使用することが可能かどうかはわかりません。あなたが試すことができます。
explode //配列に分割して読み込む
array_count_values//繰り返し回数をカウントする
arsort//ソートして結果を取得する
テキストをチャンクで処理して記録できる
テキストをチャンクに処理して、その結果を記録することができます。一度にすべてを記憶すると、記憶に保持できなくなります...
$fp = fopen('文件', 'r');while($buf = fgets($fp)) { $res[$buf]++;}fclose($fp);arsort($res);$res = array_keys(array_slice($res, 0, 10));print_r($res);
$a = file('文件');$res = array_count_values($a);arsort($res);$res = array_keys(array_slice($res, 0, 10));print_r($res);
まずバッチでデータベースに挿入し、次に SQL ステートメントの group by と order by を使用して実装します