此文仅做笔记,记录比较有用的命令,备忘。
对于UPDATE和DELETE超级多的库和表可以用下面的命令
看索引耗费的空间:
bmcv3 => select pg_relation_size(oid)/1024/1024,relname from pg_class where relkind='i' order by pg_relation_size(oid) desc limit 20;
?column? | relname
----------+---------------------------------------
66 | idx_tblbmc_trip_analysis_today_1
45 | idx_gps_info
27 | tbl_user15_age_idx
26 | t_bgate_gpsinfo2_pkey
25 | t_bgate_start_journey_index_2
22 | t_bgate_startjourney_pkey
21 | t_bgate_stopjourney_fkindex1
21 | t_bgate_stopjourney_pkey
21 | idx_user_age01
21 | tbl_user15_pkey
21 | tbl_user_pk01
19 | t_bgate_start_journey_archive_index_2
17 | b_data_out_index
17 | t_bgate_stopjourney_archive_fkindex1
17 | t_bgate_stopjourney_archive_pkey
16 | t_bgate_startjourney_archive_pkey
16 | b_taxidata_in_index_1
11 | tblbmc_trip_analysis_today_pkey
6 | b_data_out_pkey
6 | b_taxidata_in_pkey
(20 rows)
reindex 可以回收碎片空间,注意REINDEX会造成全表锁,不要在系统繁忙的时候操作。弄完之后的话还是记得analyze一下表。
bmcv3=# REINDEX TABLE tblbmc_trip_analysis_today ;
具体某个名字:
bmcv3=# select pg_relation_size('idx_tblbmc_trip_analysis_today_1')/1024/1024;
?column?
----------
44
(1 row)
Time: 20.434 ms
同时查看磁盘空间情况,暂时没有全部回收,可能会发现还有些进程占用了被删除的PAGE
[root@test ~]# lsof|grep -i delete|grep idx 一般来说一会进程退出后就会被回收了
阅读(546) | 评论(0) | 转发(0) |