Endereçamento IEnumerable <T> e IQueryable <T>?

Depois de leristo pergunta, preciso esclarecer algumas coisas.

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;

Questões:

1) É correto dizer que: na primeira consulta o SQLServer está executando toda a operação incluindo cláusula where e retornando as linhas relevantes - enquanto o segundo fazSELECT * ... e retornatodos linhas em C # eENTÃO filtros?

2) E se eu tiver umcoleção meramente - na memória. (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;

qual será a diferença na execução agora?

questionAnswers(1)

yourAnswerToTheQuestion