我想从PHP中清空PostgreSQL数据库。
我试过这个:
pg_query($conn,"vacuum analyse;");
我怎么知道这是否有效?
答案 0 :(得分:4)
第一个问题:为什么你做VACUUM FULL ?这没有意义。它实际上从未被称为。
第二:从php(可能是网页)运行真空可能会有问题。真空可以轻松占用3分钟,这是(如果我没记错的话)网络请求的标准超时。
最好的解决方案是使用autovacuum。如果你不能使用autovacuum - 使用cron安排vacuumdb调用。
答案 1 :(得分:3)
在运行真空查询之前和之后运行此查询。如果真空后'年龄'比以前少,那么真空运行成功。
SELECT age(datfrozenxid) as age FROM pg_database where datname='your_db';
答案 2 :(得分:1)
我相信它不会返回错误,它可能正常工作。以下是关于真空的文档。
http://www.postgresql.org/docs/current/interactive/sql-vacuum.html
答案 3 :(得分:1)
假设您的真空运行超过几秒钟,您可以在postgres客户端中运行“SELECT * FROM pg_stat_activity
”以获取当前正在运行的查询的列表。您的VACUUM查询应该显示在那里。