七叶笔记 » 数据库 » 解决postgresql 数据库 update更新慢的原因

解决postgresql 数据库 update更新慢的原因

;大约140000条数据) 竟然运行了一个小时还没有完成 下面是我的几点解决方案 我的update 语句 是从一个临时表更新值到另一个正式表 因为具体数据需要保密,我就不截图了 只说说大体思路,与方法

1.查看语句是否有问题

复制俩个一模一样的表 和数据 手动执行语句 发现不到一分钟就运行成功了 这样就可以确认语句没有问题

2.查找影响updata的因素

我的第一反应是不是有锁 有锁的情况会导致等待或者死锁

查询锁

查询到有锁 把锁进程杀掉 重启服务 继续跟踪 发现5分钟后 又出现锁了 反复试了几次发现跟锁没有关系

3.查询参数

首先看的的 是shared_buffers 参数,发现也没有问题

4.收缩表 VACUUM

查询数据进程时,发现自动收缩 也执行10分钟还没好 就查询表收缩的情况

用于服务器监控,可查询进程,时间消耗与锁相关

查询是否到达自动清理的表

然后发现死元祖太多 然后我手动收缩了这个表 之后更新的就快了

5.总结

遇到这种情况 先需求确保你的sql语句没有问题,然后查看有没有锁 可以EXPLAIN 一下 ,看看数据库参数,是不是数据库的性能原因 最后再看看是不是需要收缩表

到此这篇关于解决postgresql 数据库 update更新慢的原因的文章就介绍到这了,更多相关postgresql 数据库 update更新慢内容请搜索七叶笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持七叶笔记!

相关文章