首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >实体框架4.1和数据库(MySQL)性能问题{当表包含32万行时,如何加快查询速度以返回第一条记录}

实体框架4.1和数据库(MySQL)性能问题{当表包含32万行时,如何加快查询速度以返回第一条记录}
EN

Stack Overflow用户
提问于 2011-10-27 15:08:27
回答 1查看 329关注 0票数 1

您好,我使用的是MySQL连接器/NET6.3.5和实体框架4.1。

在数据库中,我有大约320,000行的表,我按列进行简单的查询。

我对性能没有什么问题。现有一些技术或方法如何提高查询速度?

查询超时约6.3秒,服务器不在本地。

下面是我使用的方法:

代码语言:javascript
运行
复制
/// <summary>
/// select podla kluca
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public TEntity SelectByKey(string key)
{
    // First we define the parameter that we are going to use the clause.
    var xParam = Expression.Parameter(typeof(TEntity), typeof(TEntity).Name);
    MemberExpression leftExpr = Expression.Property(xParam, KeyProperty);
    Expression rightExpr = Expression.Constant(key);
    BinaryExpression binaryExpr = Expression.Equal(leftExpr, rightExpr);

    //Create Lambda Expression for the selection
    Expression<Func<TEntity, bool>> lambdaExpr = Expression.Lambda<Func<TEntity, bool>>
        (binaryExpr, new ParameterExpression[] { xParam });

    //Searching ....
    IList<TEntity> resultCollection = ((IRepository<TEntity, TCtx>)this).SelectAll(new Specification<TEntity>(lambdaExpr));

    if (null != resultCollection && resultCollection.Count() > 0)
    {
        //return valid single result
        return resultCollection.First();
    }
    return null;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-27 16:28:02

替换你最后几行代码(对不起,我还没有测试过它),但是从我的头顶开始如何?

代码语言:javascript
运行
复制
IList<TEntity> resultCollection = ((IRepository<TEntity, TCtx>)this).SelectAll(new Specification<TEntity>(lambdaExpr));
((IRepository<TEntity, TCtx>)this)
if (null != resultCollection && resultCollection.Count() > 0)
{
   //return valid single result 
   return resultCollection.First();
}
return null;

// with following lines

foreach(TEntity entity in ((IRepository<TEntity, TCtx>)this).SelectAll(new Specification<TEntity>(lambdaExpr)))
    return entity;
return null;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7912678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档