Cuando decidí usar un OR/M (Entity Framework para MySQL esta vez) para mi nuevo proyecto, esperaba que me ahorrara tiempo, pero parece que lo he fallado (por segunda vez ahora).Entity Framework + MySQL - ¿Por qué el rendimiento es tan terrible?
Tome este sencillo consultas SQL
SELECT * FROM POST ORDER BY addedOn DESC LIMIT 0, 50
Ejecuta y me da resultados en menos de un segundo como debería (la mesa tiene unos 60.000 filas).
Aquí está el LINQ equivalente a las entidades consulta que escribí para este
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
Pero esta consulta ni siquiera se ejecuta el tiempo de espera SIEMPRE (sin orderby se tarda 5 segundos para correr)! Mi tiempo de espera se establece en 12 segundos para que pueda imaginarse que está tomando mucho más que eso.
- ¿Por qué sucede esto?
- ¿Hay alguna manera de ver cuál es la consulta SQL real que Entity Framework está enviando a la base de datos?
- ¿Debo abandonar EF + MySQL y pasar al SQL estándar antes de perder toda la eternidad tratando de hacerlo funcionar?
he recalibrado mis índices, trataron de carga ansiosa (que en realidad hace que falle incluso sin la cláusula orderby)
Por favor ayuda, estoy a punto de renunciar O/M para MySQL como una perdida porque.
Bueno, me he rendido y descartado EF + MySQL –