¿IEnumerable <T> y IQueryable <T> clarificación?

Despues de leeresta Pregunta, necesito aclarar algunas cosas.

IQueryable<Customer> custs = from c in db.Customers
where c.City == "<City>"
select c;

IEnumerable<Customer> custs = from c in db.Customers
where c.City == "<City>"
select c;

Preguntas:

1) ¿Está bien decir que: en la primera consulta, SQLServer está ejecutando toda la operación, incluida la cláusula where y la devolución?SOLAMENTE las filas relevantes - mientras que la segunda lo haceSELECT * ... y devuelvetodos filas en C # yENTONCES filtros?

2) ¿Qué pasa si tengo uncolección meramente - en la memoria. (var lstMyPerson = new List<MyPerson>() )

IQueryable<MyPerson> lst = from c in lstMyPerson 
where c.City == "<City>"
select c;

vs

IEnumerable<MyPerson> custs = from c in lstMyPerson 
where c.City == "<City>"
select c;

¿Cuál será la diferencia en la ejecución ahora?

Respuestas a la pregunta(1)

Su respuesta a la pregunta