1

次のクエリがあります

    SELECT `id`,'event' as type FROM `oc_event` where `Owner_id` = 1
    UNION ALL
    SELECT `id` ,'business' as type FROM `oc_business` where `Owner_id` = 1
    UNION ALL
    SELECT `id`, 'parts'  as type FROM `oc_listing` where `Owner_id` = 1

ただし、結果は正確ですが、フェッチされた行数が約1K以上の場合、静かに遅くなります..この単純なクエリを最適化するためのmysqlキーワードはありますか、それとも「UNION ALL」が正しい方法ですか?

PS:PDOを使用しています

4

1 に答える 1

1

重複データを表示したい場合は、ユニオンを使用することをお勧めします。それ以外の場合はユニオンを使用することをお勧めします。単一の行が見つかったときに停止します。

クエリを改善するには、すべてのテーブルの owner_id にインデックスを作成します

于 2013-01-10T06:24:17.023 に答える