私は2つのテーブルがあります。 1つは予測のリスト(別名PREDS)です。もう一つはSTATSと呼ばれる予測に関する要約統計の集まりです。今のところ、PREDSは約1mmのラインを持っていますが、30個の異なるモデルによって実際に生成されるので、各モデルは約30k予測を生成します。MYSQL NOT DISTINCT()を使用してクエリ
STATSテーブルでは、各行は1つのモデルの要約統計量です。 STATSテーブルには、もはや存在しない古いモデルがあるため、約100行あります。 PREDSテーブルのどのモデルがSTATSテーブルにないのかを調べようとしているので、それらの統計情報を更新することができます。
私はこのようなものをしようとしている:
SELECT distinct(t1.modelnum) FROM `PREDS` t1
where t1.modelnum not in (select distinct(modelnum) from `STATS` t2);
それが実行に永遠にかかります。私はすぐに別々の側面を走らせることができる(select distinct(modelnum) from...
)が、私は何か間違っているように見える組み合わせたとき。
提案がありますか?
PREDS.modelnumにインデックスがありますか? –
いいえ、インデックスはまだありません。 – screechOwl
ところで、 'DISTINCT'は関数ではありません(MySQLではなく)。これは、ステートメントをdistinct * rows *に戻す句です。はい、行に適用され、列には適用されません。 (そしてカッコ内の列はカッコ内の列にすぎません) –