本文共 1199 字,大约阅读时间需要 3 分钟。
需要注意的是drop是直接delete seg上的数据文件,通过系统表的relfilenode可以找到该文件的索引。而truncate table tablename 并不会立即释放表空间。是需要用关键字vacuum来回收的。
-------------------------2019-01-11 09:49:21 drop table 会不会释放空间------------------------------------------------------------------------ create table tab_todrop(id int,cname varchar(50),remark text); insert into tab_todrop select generate_series(1,10000000),'wx good boy',md5('wx good boy'); insert into tab_todrop select generate_series(1,10000000),'wx good boy',md5('wx good boy');drop table tab_todrop--查看表大小select pg_size_pretty(pg_relation_size('tab_todrop'));--[root@P1QMSTST01 ~]# du -sh--3.5G select relname, --表/视图/索引等的名字relowner, --关系所有者relfilenode --这个关系在磁盘上的文件的名称,如果没有则为0from pg_classwhere relname = 'tab_todrop';-- ll 17088/1599694*--ls: cannot access 17088/1599694*: No such file or directory--[root@P1QMSTST01 base]# ll 17089/1599694*---rwxrwxrwx 1 gpadmin gpadmin 280821760 Jan 11 09:54 17089/15996949--[root@P1QMSTST01 base]# pwd--/datap2/gpseg1/basedrop table tab_todrop ;--可以看到,磁盘上该文件已经没有了-- ll 17089/1599694*--ls: cannot access 17089/1599694*: No such file or directory--[root@P1QMSTST01 base]# --可以证明drop table确实是可以释放空间的
转载地址:http://echqj.baihongyu.com/