Entidade Framework + MySQL - Por que o desempenho é tão terrível?

Quando eu decidi usar um OR / M (Entity Framework para MySQL desta vez) para o meu novo projeto, eu esperava que isso economizasse tempo, mas parece que falhei (pela segunda vez agora).

Tome esta simples consulta SQL

SELECT * FROM POST ORDER BY addedOn DESC LIMIT 0, 50 

Ele executa e me dá resultados em menos de um segundo como deveria (a tabela tem cerca de 60.000 linhas).

Aqui está a consulta LINQ To Entities equivalente que eu escrevi para isso

var q = (from p in db.post
            orderby p.addedOn descending
             select p).Take(50);

    var q1 = q.ToList(); //This is where the query is fetched and timed out

Mas esta consulta nunca executa vezes SEMPRE (sem ordenar leva 5 segundos para rodar)! Meu tempo limite está definido para 12 segundos, então você pode imaginar que está levando muito mais do que isso.

Por que isso está acontecendo?Existe uma maneira que eu possa ver o que é a consulta SQL real que o Entity Framework está enviando para o banco de dados?Devo desistir do EF + MySQL e passar para o SQL padrão antes de perder toda a eternidade tentando fazê-lo funcionar?

Eu recalibrei meus índices, tentei um carregamento rápido (o que na verdade faz com que ele falhe mesmo sem a cláusula orderby)

Por favor, ajude, estou prestes a desistir do OR / M para MySQL como uma causa perdida.

questionAnswers(4)

yourAnswerToTheQuestion