# 数据库长查询问题 org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend. 1、检查数据库连接池配置(如最大空闲时间、最大连接数等)。 2、原因:连接池中的连接被数据库关闭,但应用还在用。 排查: 配置连接池的连接检测(如 HikariCP 的 connectionTestQuery,Druid 的 validationQuery)。 设置合理的最大空闲时间和最小空闲连接数。 3、原因:SQL 执行时间过长,连接超时。 排查: 优化 SQL 语句,避免长时间锁表或大事务。 检查应用和数据库的超时设置。 ERROR: invalid byte sequence for encoding "UTF8": 0x00 插入数据时 有 '\0' 字符 java.sql.SQLTransientConnectionException: HikariPool-2 - Connection is not available, request timed out after 30000ms. 应用层面: 数据库执行 SQL 变慢,导致连接长时间占用,连接池无法及时回收连接。 可能是慢查询、锁表、死锁等问题。 长事务导致连接长时间占用,无法归还连接池。 连接池中的连接都被占用,新的请求只能等待,超时后抛出异常。 某些数据库连接被获取后没有及时关闭(如 conn.close()),导致连接池中的连接被耗尽。 代码中未正确释放连接、ResultSet、Statement 等资源。1 maximumPoolSize 设置过小,无法满足高并发需求。 connectionTimeout 设置过短,导致还没等到连接就超时。 ==============================================================================