# 统计功能
统计功能用以记录操作占比,通过参数 enable_sql_statistic
开启。
除了上面的参数之外,使用这个功能还需要开启操作备份功能,因为这些统计数据需要存储到备份数据库中,存储的数据库名为inception中, 这个数据库现在只有一个表statistic,存储的就是SQL执行数目的统计数据。
statistic表的结构如下:
从每一个列的名字就可以看到,其值对应的操作是什么,每一个列就是一个自增列,第二个列optime是操作时间,这个主要是用来统计在某一段时间内的某一个操作占多少比例。
部分列说明:
- deleting : 包括普通的删除操作及多表删除操作。
- inserting : 包括单行插入、多行插入及查询插入。
- updating : 包括普通单表更新及多表的更新。
- renaming : 指的是ALTER table语句中的rename操作。
- createindex : 指的是ALTER table语句中的add index操作。
- dropindex : 指的是ALTER table语句中的drop index操作。
- alteroption : 指的是ALTER table语句中的修改表属性的操作,比如存储引擎、自增值及字符集中操作。
- alterconvert : 指的是ALTER table语句中修改表字符集的操作。
对于ALTER TABLE操作,因为这个操作包含很多的子操作,比如rename、drop index、engine innodb等操作,所以对于列altertable,它的值是renaming, createindex, dropindex, addcolumn, dropcolumn, changecolumn, alteroption, alterconvert的和, 而后面的是对ALTER TABLE语句的细分操作统计。
那么如果现在想要统计某一个操作,比如修改表占所有操作的百分比,则使用如下语句即可完成:
SELECT Sum(a.oprate) / Count(1) updaterate
FROM (SELECT ( updating ) / ( usedb + deleting + inserting + updating +
selecting
+ altertable + createtable + droptable +
createdb
+ truncating ) oprate
FROM inception.statistic) a;
# 说明
- 只是审核操作,或者审核失败未执行时,不会进行操作统计。
- goInception会记录实际执行的数据,即如果执行一部分后失败时,只记录实际执行的操作。
- 备份出错导致提前返回时,不会影响统计信息。