私は約1 500 000のエンティティを持つMySQLデータベースを持っています。私はEFコア1.1とMysql.Data.EntityFrameworkCore 7.0.7-M61はそれを仕上げるのに約40分かかります使用して文の下に実行しようとすると:ローカルのmysql-CLIとステートメントの下を使用して一方EFコアMySQLのパフォーマンス
var results = db.Posts
.Include(u => u.User)
.GroupBy(g => g.User)
.Select(g => new { Nick = g.Key.Name, Count = g.Count() })
.OrderByDescending(e => e.Count)
.ToList();
を取ります完了するまで約16秒。
SELECT user.Name, count(*) c
FROM post
JOIN user ON post.UserId = user.Id
GROUP BY user.Name
ORDER BY c DESC
私は何か間違っているか、MySqlのEFコアパフォーマンスがひどいですか?
は、user.nameのインデックスに登録されていますか? –
私はそうは思わない – Marduk
実行される実際のSQLクエリのログを有効にしてみてください。私は実際に何が実行されているかは、あなたが書いた質問から遠いと思う。 EFが生成したクエリのそれぞれをmysql-cliで実行し、それらのクエリを実行します。あなたはボトルネックを見つけるでしょう – ironstone13