Собственно, имеется таблица вида
|name|surname|info1|info2|info3|
name и surname индексированы, соответственно, select ... where name="foo" && surname="bar" проходят мгновенно. Если добавляю поиск еще по одному столбцу, то уже долго все идет...
Посему, вопрос. Как сделать так, чтобы сначала происходил поиск по первым двум полям, а из полученных данных уже делать еще один селект? Либо, может вообще надо как-то по другому все делать?
Может нужно все-таки подходящий индекс подобрать и для третьего поля? Как вам повторный селект-то поможет, если все равно надо фильтровать по третьему полю? Что у вас за тип у третьего поля и какой у вас фильтр на него?
А в чём проблема ? Таблицей в from может быть не готовая таблица, а подзапрос где-то так:
select * from (select * where name="foo" and surname="bar" ) t
where t.info1="qwe"
Можно представление (view) создать, а из него выбирать.