Actuellement, MySQL effectuera toutes les sélections sur une union même s'il y a suffisamment de lignes dans les premières requêtes, comme @Yuki Inoue l'a mentionné dans sa réponse. En utilisant la réponse de @ user1477929, vous pouvez réécrire votre requête comme :
(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;
qui vous donnera au plus 1000 lignes, et ne parcourra jamais plus de 3000.