sql执行为啥这么慢,常见的原因有哪些

  1. sql 本身写的比较差
    这是一个比较大的方向,有很多细小的点。可能一两个不注意,就会导致一个sql超时。比如在子查询数据量比较大的时候使用exist代替in,又或者在可以使用inner join的时候却使用了left join。

  2. 索引失效
    这是一个比较重要的优化点,如果在关键字段使用了计算公式,可能导致索引失效,like也有可能,具体可查看一下索引失效的场景。mysql使用explain执行一下sql可以查看,oracle好像f5还是f8可以看。

  3. 关联太多的表进行查询
    有些是设计上的缺陷,不得已而为之,特别是一些传统的erp老系统,业务迭代很多,二次三次到N次开发,表加了一张又一张,只为了不改变原先的表结构和业务逻辑。我曾经见过一张表有400+字段的,使用这种表一定不能使用select * ,把自己关注的字段取出来就行了。

  4. 服务器调优及各个参数配置
    如缓存,连接池配置
    另外,提一下曾经遇到过的一个案例,oracle数据库,单表查询,表里面数据量个位数,但是查询需要几十秒。后来发现是因为表的水位线比较高,该表曾经装过大量数据,清空后,资源没有回收。

猜你喜欢

转载自blog.csdn.net/qq_41885819/article/details/121082645
今日推荐