Entity Framework + MySQL - Почему производительность такая ужасная?

Когда я решил использовать OR / M (Entity Framework для MySQL на этот раз) для моего нового проекта, я надеялся, что это сэкономит мне время, но, похоже, я потерпел неудачу (уже во второй раз).

Возьми этот простой SQL-запрос

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

Он выполняется и дает мне результаты менее чем за секунду, как и должно (таблица имеет около 60 000 строк).

Вот эквивалентный запрос LINQ To Entities, который я написал для этого

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

Но этот запрос никогда даже не выполняется, время ожидания ВСЕГДА (без ордера на выполнение требуется 5 секунд)! Мой тайм-аут установлен на 12 секунд, поэтому вы можете себе представить, что он занимает гораздо больше времени.

Why is this happening? Is there a way I can see what is the actual SQL Query that Entity Framework is sending to the db? Should I give up on EF+MySQL and move to standard SQL before I lose all eternity trying to make it work?

Я перекалибровал свои индексы, попробовал активную загрузку (что фактически приводит к сбою даже без предложения orderby)

Please help, I am about to give up OR/M for MySQL as a lost cause.

Ответы на вопрос(4)

Ваш ответ на вопрос