我創建的ASP MVC項目從大Mysql數據庫獲取數據〜500000LINQ和.Count之間的大數據庫
我的DataTable添加到我的前端與各列的過濾器,其中只顯示10個條目。
data = dc.books.OrderBy(x => x.id).Where(x =>
(market_id == 0 || x.market_id == market_id)
&& (name == null || x.name != null && (x.name.Contains(name)))
&& (author == null || x.author != null && (x.author.Contains(author)))
).Skip(param.Start).Take(10).ToList();
工作又好又快。
當我嘗試添加計數後過濾器綁好。不工作服務器Mysql超時錯誤或工作非常緩慢
count = db.books.Count(x =>
(market_id == 0 || x.market_id != 0 && x.market_id == market_id)
&& (name == null || x.name != null && (x.name.StartsWith(name)))
爲什麼計數不工作或緩慢?
所有代碼我conttoller here
Sql Server的計數速度非常快(還有謂詞)。無論計數是否快速,它在數據庫引擎中可能都是根深蒂固的。我不知道MySql,但我認爲你錯過了一些重要的索引。 –