人大金仓分析型数据库系统维护(二)

索引重建

        对于B-树索引,一个刚刚构建的索引访问起来比一个已经更新过很多次的索引要快一点,因为在新构建的索引中逻辑 上相邻的页面在物理上也相邻。定期地重建旧的索引可以提升访问速度。如果一个页面上除了索引以外的数据都被删除,那么索引页上对应的也会产生浪费的空间。重建索引操作会回收这些被浪费的空间。在数据库中,删除索引 (DROP INDEX)再重建 (CREATE INDEX)通常比直接使用REINDEX命令要快。

        对于有索引的表列,批量更新或者插入之类的一些操作可能会执行得更慢,因为需要更新索引。为了提高带有索引的表上的批量操作性能,可以先删除掉索引,然后执行批量操作,最后再重建索引。

管理日志

        数据库的日志输出常常会体量很大,尤其是在调试级别时,用户不需要无限期保存它。管理员可以应该定期清理日志文件。数据库在Master和所有的实例上都启用了日志文件轮转。 日志文 件被创建在Master以及每个实例的数据目录中的pg_log子目录下,这些文件使用命名规则:gpdb-YYYY-MM-DD_hhmmss.csv。数据库管理员需要编写脚本或程序定期清理Master以及每个实例日志目录pg_log下的旧文件。

        日志轮转可以被当前日志文件的大小或当前日志文件的年龄触发。log_rotation_size 配置参数设置触发日志轮转的单个日志文件大小。当日志文件大小等于或大于特定的大小时,该文件会停止写入, 系统重新创建一个新的日志文件。log_rotation_size的值的单位为KB。默认为1048576, 即1GB。如果log_rotation_size设置为0,表示基于文件大小的日志轮转被禁用。

        log_rotation_age配置参数定义了出发日志轮转的日志文件年龄。当文件自创建时开始到达特定长度的时间时,该文件停止写入,系统重新创建一个新的日志文件。默认的log_rotation_age 时间为1d,即当前日志文件创建24小时之后。如果log_rotation_age设置为0,表示基于时间的轮转被禁用。

你可能感兴趣的:(数据库)