Bueno mi respuesta sera mas sencilla. La opcion tres
o
o
es la mejor. por 2 motivos, generas una sola consulta o trasmisión de datos desde y hacia la base de datos. 2 Todo el trabajo de indexado y unión de los resultados se hace en el servidor. Lo cual es bastante rapido
espero te sirva
suerte.