時々、私は次のようなものを介して2つの大きなテーブルを結合する必要があります
SELECT t1.x + t2.x FROM t1 JOIN t2 USING (some_unimportant_column)
両方のテーブルが大きく、にインデックスがないため、時間がかかりますsome_unimportant_column
。更新中にディスクスペースと時間がかかるため、インデックスを保持したくありません。さらに、時々私は参加が必要USING (another_unimportant_column)
です。
このJOINは、インデックスを正当化するほど頻繁ではありませんが、非常に非効率的な計算を1時間待つほど珍しいことではありません。非常にうまく機能するのは
- 1つのテーブルの列にインデックスを作成します
- JOINを実行します
- インデックスを削除します
しかし、これを手動で行うのは面倒であり、DDLコマンドによるコミットは厄介です。
なぜデータベースがこれを理解できないのだろうか?私はmysqlを使用していますが、他のDBエンジンがこれについて賢いのではないかと思いますか?