Creo que vale la pena señalar, aunque se mencionó en los comentarios, que en esta situación:
SELECT 1 FROM my_table WHERE *indexed_condition* LIMIT 1
Es superior a:
SELECT * FROM my_table WHERE *indexed_condition* LIMIT 1
Esto se debe a que el índice puede satisfacer la primera consulta, mientras que la segunda requiere una búsqueda de fila (a menos que posiblemente todas las columnas de la tabla estén en el índice utilizado).
Agregar la LIMIT
cláusula permite que el motor se detenga después de encontrar cualquier fila.
La primera consulta debe ser comparable a:
SELECT EXISTS(SELECT * FROM my_table WHERE *indexed_condition*)
Lo que envía las mismas señales al motor (1 / * no hace ninguna diferencia aquí), pero aún escribiría el 1 para reforzar el hábito al usar EXISTS
:
SELECT EXISTS(SELECT 1 FROM my_table WHERE *indexed_condition*)
Puede tener sentido agregar el EXISTS
ajuste si necesita un retorno explícito cuando no coinciden las filas.
...EXISTS( SELECT 1/0 FROM someothertable)
. Para SQL Server y Oracle: no hace ninguna diferencia usar *, 1 o NULL porque EXISTS solo prueba un valor booleano basado en 1+ de la coincidencia de criterios WHERE.