Mysql
 sql >> Database >  >> RDS >> Mysql

UNION ALL e LIMIT in MySQL

Attualmente, MySQL eseguirà tutte le selezioni su un'unione anche se ci sono abbastanza righe nelle prime query, come menzionato da @Yuki Inoue nella loro risposta. Usando la risposta di @ user1477929, puoi riscrivere la tua query come:

(SELECT a FROM t1 WHERE a=10 AND B=1 LIMIT 1000) 
UNION ALL 
(SELECT a FROM t2 WHERE a=11 AND B=2 LIMIT 1000) 
UNION ALL 
(SELECT a FROM t3 WHERE a=12 AND B=3 LIMIT 1000) 
ORDER BY a LIMIT 1000;

che ti darà al massimo 1000 righe e non scansiona mai più di 3000.