sql查询慢,贴个这个图有什么用,sql不贴,表关系不贴...
你那个sql过的过于复杂了吧,看你联表的时候好多相同的表只是条件不同,没必要用那么多left join吧
可以建索引字段,把关联的字段建成索引试一下。另外看一下是否可以把sql关联的数据,定时同步到一个单表中,导出的时候可以,直接查询单表。思路如有帮助,请采纳一下,谢谢!
语句贴出来啊
sql优化的方案很多,sql写的太复杂了,对查询的字段加索引。
通过执行计划,可以查看sql执行过程以及索引使用情况。
explain sql
sql优化不了的情况下,考虑是否可以用异步的方式处理。
大部分是同一个表自连接,可以考虑用union all 来取代left join
把一些left join 尽可能改成子查询,可能会快点?(如果有的表关联数据量小的情况下)
sql语句贴出来
由于本人比较菜,能不能给个实现的方法
1.sql层面可以考虑使用with tt as(select * from A)的实现方式,将你的sql拆分成多个子项,最后在组合;
2.有些博主说的使用inner join替换leftjoin,并且设置请求时间往后加长,或者前端加个进度条的样式那种;
两个解决办法,一个是调整代码数据库等待超时参数,一个是优化语句
用中间表 或者把sql语句转为代码逻辑 你这关联了那么多张表怎么会查询的快 阿里开发规范了解下 里面强制要求mysql禁止使用三表级三表以上的关联查询
查询条件加索引,把sql贴出来看看吧
可以先给project_argumentation表的base_id字段和 project_finance的base_id字段加普通索引,试试,具体还是要分析表
优化sql,增加索引
加索引,再用临时表分步查询
关联字典值的不用挨个都left join 改成in。
哈哈哈,不想给钱是不是,表结构,索引,中间表都可以