进一步用EXPLAIN ANALYZE抓取执行计划 ,通过锁监控视图精准定位死锁链条:sql SELECT blocked.pid AS blocked_pid, blocking.pid AS blocking_pid, blocked.query AS blocked_query FROM pg_catalog.pg_locks blocked_locks JOIN pg_catalog.pg_stat_activity blocked ON blocked.pid = blocked_locks.pid JOIN pg_catalog.pg_locks blocking_locks ON blocking_locks.locktype = blocked_locks.locktype AND blocking_locks.DATABASE IS NOT DISTINCT FROM blocked_locks.DATABASE AND blocking_locks.relation IS NOT DISTINCT FROM blocked_locks.relation AND blocking_locks.page IS NOT DISTINCT FROM blocked_locks.page AND blocking_locks.tuple IS NOT DISTINCT FROM blocked_locks.tuple AND blocking_locks.virtualxid IS NOT DISTINCT FROM blocked_locks.virtualxid AND blocking_locks.transactionid IS NOT DISTINCT FROM blocked_locks.transactionid AND blocking_locks.classid IS NOT DISTINCT FROM blocked_locks.classid AND blocking_locks.objid IS NOT DISTINCT FROM blocked_locks.objid AND blocking_locks.objsubid IS NOT DISTINCT FROM blocked_locks.objsubid AND blocking_locks.pid != blocked_locks.pid JOIN pg_catalog.pg_stat_activity blocking ON blocking.pid = blocking_locks.pid WHERE NOT blocked_locks.granted;
强制终止阻塞进程后,揭示出缺失的索引:
sql CREATE INDEX CONCURRENTLY idx_order_date ON orders(created_at);
避坑指南:在亿级数据表创建索引务必使用CONCURRENTLY ,每一步都需要用数据说话。数据库指标终于恢复平稳。mc我的世界科技教程而是mc我的世界科技鞘翅先检查三个关键点
:
bash
1. 端口监听状态
ss -tuln | grep 5432
2. 防火墙闪电排查
firewall-cmd --list-ports | grep 5432
3. 服务幽灵进程检测
ps -ef | grep postgres | grep -v grep
发现端口处于LISTEN状态但防火墙未放行 ,
▌ 阶段一:连接风暴的真相
当psql -h 127.0.0.1 -U postgres反复返回Connection refused时 ,第一反应不是直接重启服务,客服系统突然报出订单更新异常 。微信加粉统计系统
、提升网站流量排名