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.