これで 2 つのテーブル (mysql) があります
テーブル 1 のフィールドは次のとおりです: 都道府県、都市、携帯電話番号、名前、その他のフィールド
テーブル 2 のフィールドは次のとおりです: 都道府県、市、携帯電話番号、その他フィールド
表 1 と表 2 のデータベースは両方とも大規模で、毎日数百万行の新しいデータが追加されます。
これで、テーブル 1 とテーブル 2 の両方がテーブルに分割されました。
要件は、2 つのテーブルの携帯電話番号に基づいて 2 つのテーブルのデータを照合することです。
質問は:
1. 一致したデータを 3 番目のテーブルに保存する方法、またはテーブル 2 の一致する行の ID を保持するフィールドをテーブル 1 に追加する方法です。
2. 一致しないレコードをクエリする方法。
これで 2 つのテーブル (mysql) があります
テーブル 1 のフィールドは次のとおりです: 都道府県、都市、携帯電話番号、名前、その他のフィールド
テーブル 2 のフィールドは次のとおりです: 都道府県、市、携帯電話番号、その他フィールド
表 1 と表 2 のデータベースは両方とも大規模で、毎日数百万行の新しいデータが追加されます。
これで、テーブル 1 とテーブル 2 の両方がテーブルに分割されました。
要件は、2 つのテーブルの携帯電話番号に基づいて 2 つのテーブルのデータを照合することです。
質問は:
1. 一致したデータを 3 番目のテーブルに保存する方法、またはテーブル 2 の一致する行の ID を保持するフィールドをテーブル 1 に追加する方法です。
2. 一致しないレコードをクエリする方法。
リーリー
http://dev.mysql.com/doc/refm...
一致しないレコードの場合、1 つのテーブルを左側のテーブルとして使用して別のテーブルに関連付け、右側のテーブルに null があるかどうかを判断します
たとえば
結果は、tb2 には表示されない tb1 のすべてのレコードです
しかし、tb2 には別の状況があり、tb1 に存在しないレコードが tb2 にある場合、tb1 の不一致レコードは見つかりません。
実際、2 つのテーブルがすべて一致するかどうかを確認したい場合は、次のようにすることができます。 full join
を使用して一致させますが、データ量から判断して、完全結合は使用しないことをお勧めします。
結合の使用方法については、この画像を参照してください
テーブルの最適化
1. 携帯電話番号フィールドにインデックスを作成します
2. 携帯電話番号の最初の数桁に従ってテーブルを分割することをお勧めします。
保管について
テーブル 1 とテーブル 2 にフィールドを追加して、別のテーブルに行を保存することをお勧めします。次回の更新処理で値のあるフィールドの処理をスキップできます。
一致しないフィールドは空です。
また
テーブル 1 にデータを追加するときに、更新をレコードに直接配置し、テーブル 2 に存在するかどうかを確認することをお勧めします。
クエリを実行できます
select * from t1,t2 where t1.mobile = t2.mobile
クエリを実行した後、新しいものを作成できます