These two options are similar to each other than to sound.
When you execute a single large query with UNION s, MySQL will still execute three separate queries, just as you propose to do in your alternative plan, and then combine them into one result.
So, you can either let MySQL do the filtering (and LIMIT ) for you, or you can do it yourself. Given this choice, allowing MySQL to make all working sounds much more preferable.
Having extra columns in the result set could theoretically hinder performance, but with a small result like your 20 rows, I would not expect this to have a noticeable effect.
source share