实现一个数据库(10)快照

本文介绍了数据库快照的作用,包括数据库级、会话级、表级和语句快照的不同级别,并详细阐述了一个简化版的快照实现,主要关注语句-会话级别的快照,如插入、删除、查询次数及会话运行时间。同时,提到了快照类的设计与实际运用方法。

github链接(更新中)

https://github.com/pourtheworld/mydb


大纲(更新中)
(0)mydb的架构设想


快照介绍

通过记录实时状态,DBA可以了解当前系统的运行状况,在基于此进行性能监控和调优。

快照级别

一般来说为:

  1. 数据库级快照:可能包含连接数量、索引读写次数、索引IO次数、执行事务总数、磁盘空间占用、内存占用、CPU开销等。
  2. 会话级快照:可能包含连接开始时间、执行事务总数、索引读写次数、CPU占用、内存占用、当前状态等。
  3. 表级快照:可能包含读写总数、记录总数、创建时间等。
  4. 语句快照:可能包含执行总数、消耗CPU总数、索引读写次数、执行时间总量等。

快照实现

由于我们暂时没有表的概念,所以将快照定义到语句-会话级的级别,实现如下功能即可:

  1. 插入总次数。
  2. 删除总次数。
  3. 查询总次数。
  4. 会话开启到现在的运行时间。

快照类定义

class MonAppCB
{
   
   
public:
    MonAppCB();
    ~MonAppCB();
    void setInsertTimes(long long insertTimes);
    long long getInsertTimes()const;
    void increaseInsertTimes(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值