Наверное, нет. union distinct
будет обрабатывать каждый подзапрос до завершения.
Если вам нужны просто произвольные строки, сформулируйте это как:
(SELECT user_id
FROM myapp.usersearch
WHERE username_1 LIKE {string}%
LIMIT 10
) UNION DISTINCT
(SELECT user_id
FROM myapp.usersearch
WHERE username_2 LIKE {string}%
LIMIT 10
)
LIMIT 10;
Это, по крайней мере, сэкономит вам много времени для общих префиксы - скажем, 'S'
.
Тем не менее, это просто возвращает произвольный список из 10 user_id
s, хотя их может быть намного больше.
Я не знаю, скорость будет достаточно быстро для вашего приложения. Вы должны сделать это суждение, протестировав соответствующий набор данных.