我正在使用spring-data
和CrudRepository
进行任何数据库访问。每天一次,我还必须截断一个包含大约100GB数据的缓存表并重建它。
问题:表被成功截断(我验证了表是空的),但是文件没有从数据库的硬盘中物理删除!
interface MyTableRepository extends CrudRepository<MyTableEntity, Long> {
@Query(value = "TRUNCATE TABLE my_table", nativeQuery = true)
@Modifying
@Transactional
void truncateTable();
}
因此,硬盘空间日益减少。
我注意到的是:如果我关闭我的java应用程序,那么truncated
表的postgres
部分之前会立即被删除!
这可能是什么原因?
当我使用pgAdmin截断同一个表时,磁盘空间将按预期释放。
答案 0 :(得分:0)
有两个可能的原因
PostgresSQL会在真空后删除此索引文件。等等或自己抽真空
在退出此java程序