视图作为数据源时查询的响应速与sql查差很多
lorre 发布于2月前 2答/160阅

我的原始需求是:

数据源为一个视图,查询速度慢的问题。

实现过程中遇到的问题:

通过在数据库建立一个视图,导入元数据使用视图的方式创建成功后,检索数据,效率如下:


在页面上访问需要7.8S。查询后台的sql日志,执行了如下两条:

select count(*) from v_bc_shangtong where carriage_no like ?;

select * from v_bc_shangtong where carriage_no like  ? order by id desc limit 0, 15;

模拟页面上的访问条件运行这两条sql:



这两条SQL的运行效率都非常高,总耗时不到1秒。

EOVA在页面上的等待时间7秒+。

我觉得这个问题的原因是:

我需要分析从请求到返回页面的展示的流程及各个环节用掉的时间,以便进行针对性的优化。暂时排除了数据库慢或者视图写的太烂的问题。





[沙发] lorre
原因找到。 查询时后台拼接的sql 查询条件是 like '% string %'
这样的模糊查找在数据库中效率很低。通过拦截器替换掉查询条件解决。
亮点
[地板] snakelenas
@lorre 
记下了,也是同样的问题
提交评论