
# 关闭连接
libpq通常使用[PQfinish](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/gaussdb-12-0191.html)函数来关闭与数据库的连接。如果应用程序建立了多个连接，则需要确保每个连接都被正确关闭。
示例如下（完整示例请参考[数据库建连、执行SQL并返回结果](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/gaussdb-12-0180.html)）：
```
/* 关闭入口 ... 不用检查错误 ... */
res = PQexec(conn, "CLOSE myportal");
PQclear(res);
/* 结束事务 */
res = PQexec(conn, "END");
PQclear(res);
/* 关闭数据库连接并清理 */
PQfinish(conn);
```
注意事项：
- 无论连接成功、失败还是发生异常，都必须确保PQfinish被调用，否则会导致连接句柄泄漏，长期运行可能耗尽系统文件描述符或数据库连接数；
- 先释放所有PGresult对象（调用PQclear），再关闭连接（调用PQfinish）；
- 多线程环境建议每个线程应使用独立的PGconn对象，关闭时需确保线程安全。
 
