我有大約1 500 000個實體的Mysql數據庫。當我嘗試使用EF核心1.1以下語句來執行和Mysql.Data.EntityFrameworkCore 7.0.7-M61大約需要40分鐘完成:使用本地的mysql-CLI和下面的語句EF Core 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
我做錯了什麼,或者EF核心性能的MySql是如此可怕?
是user.name索引? –
我不這麼認爲 – Marduk
嘗試啓用記錄執行的實際sql查詢。我懷疑實際運行的內容離你寫的查詢很遠。 執行EF生成的每個查詢並在mysql-cli中運行它們並計時。你會發現瓶頸 – ironstone13