Entity Framework + MySQL - Dlaczego wydajność jest tak straszna?

Kiedy zdecydowałem się użyć OR / M (Entity Framework dla MySQL tym razem) dla mojego nowego projektu, miałem nadzieję, że zaoszczędzi mi to czasu, ale wydaje mi się, że zawiodłem (po raz drugi).

Weź to proste zapytanie SQL

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

Wykonuje i daje mi wyniki w czasie krótszym niż sekunda (tabela ma około 60 000 wierszy).

Oto odpowiednik zapytania LINQ To Entities, które dla tego napisałem

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

Ale to zapytanie nigdy nie wykonuje go z wyprzedzeniem ZAWSZE (bez polecenia trwa 5 sekund)! Mój limit czasu jest ustawiony na 12 sekund, więc możesz sobie wyobrazić, że to wymaga znacznie więcej.

Dlaczego to się dzieje?Czy istnieje sposób, aby zobaczyć, jakie jest rzeczywiste zapytanie SQL, które Entity Framework wysyła do bazy danych?Czy powinienem zrezygnować z EF + MySQL i przejść do standardowego SQL, zanim stracę całą wieczność, próbując go uruchomić?

Ponownie skalibrowałem moje indeksy, próbowałem chętnie ładować (co w rzeczywistości sprawia, że ​​nie działa nawet bez klauzuli orderby)

Pomóż, zamierzam zrezygnować z OR / M dla MySQL jako utraconej przyczyny.

questionAnswers(3)

yourAnswerToTheQuestion