1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hanchuanchuan-goInception

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
statistics.md 2.2 КБ
Копировать Редактировать Исходные данные Просмотреть построчно История
hanchuanchuan Отправлено 6 лет назад 41597b7

统计功能

统计功能用以记录操作占比,通过参数 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会记录实际执行的数据,即如果执行一部分后失败时,只记录实际执行的操作。
  • 备份出错导致提前返回时,不会影响统计信息。

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/hanchuanchuan-goInception.git
git@gitlife.ru:oschina-mirror/hanchuanchuan-goInception.git
oschina-mirror
hanchuanchuan-goInception
hanchuanchuan-goInception
v1.2.3