Das quatro opções acima usando 3 consultas reais no meu aplicativo, que levam cerca de 1-3 segundos cada para serem executadas, o método 3 acabou sendo o mais rápido para qualquer pessoa interessada.
Os métodos 1 e 2 foram cerca de 1/2 segundo mais lentos, e o método 4 foi apenas super ligeiramente mais lento.
Edit:eu fiz esses benchmarks usando o
console.time('query')
sugestão nos comentários acima.