大数据量下进行分页查询,增加where条件导致查询速度特别慢 返回

SqlSugar 老数据
3 2968

在大数据量下做分页查询:

  1. 使用_db.Ado.SqlQueryAsync<Table>(sql), 直接执行sql语句用时1.8794396秒

  2. 使用_db.Queryable<Table>().Where(d => d.Name.Contains("xxxx")).OrderBy(d => d.CreateTime).ToPageListAsync(1,15),耗时1分17.5994763秒

在不加where条件的情况下,两种方式查询速度相近;如果使用where条件会导致查询速度特别慢。

数据库表已经增加相应的索引。


热忱回答3

  • Contains改成startwith

    0 回复
  • @fate stay night:改成StartWith后,减少了一点时间,但是时间差还是很大;

    image.pngimage.png

    该表中大约有500w+条数据。k1是直接执行sql语句进行分页查询所用的时间,k2是通过表达式组合而成查询所用的时间。

    0 回复
  • 看下sql区别吧orm生成sql

    0 回复