Description: 纸上得来终觉浅,绝知此事要躬行。
dba (314) mysql dba (3) tyoung (1) 晴颺 (1) dba之路 (1) road to dba (1)
上一篇文章介绍的 Zabbix数据表使用TokuDB引擎及分区表 ,同时需要每个月为这些表新建一个分区,及删除历史分区。由于MySQL不会自动新建及删除分区,所以需要额外创建一个定时任务,来进行表分区的管理。这里采用MySQL的event来做。
实现的思路是:定时任务每个月执行一次,在执行的时候,创建下个月的分区,及删除大于保留时长的历史分区,并将操作记录到log表里,便于查询历史操作记录。
线上的Zabbix库的数据表默认使用的是InnoDB存储引擎,随着时间的增长,数据量和占用的存储空间越来越多,单表数据达到了3亿之多。同时,Zabbix的Housekeeping每次在定期清理历史数据时,执行时间都超过了1分多钟,严重影响数据库的性能。