は、私は〜500000のLINQと.Count大きなデータベース
私は唯一の10項目を示して個々の列フィルタ、と私のフロントエンドにのDataTableを追加した大きなMySQLデータベースからデータを取得し、ASP MVCプロジェクトを作成します。
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について知らないが、あなたはいくつかの重要なインデックスを欠いていると思う。 –