【TiDBer 唠嗑茶话会 93】TiDBer 有话说——为 TiDB 的产品发展提 *** 条建议

可观测行,在数据库内核层面提供的数据还是太少了,且感觉较为混乱。

  1. 表的统计信息有的存在于mysql视图下,有的在information视图下,看似较多地方查询实则缺少较为实用直观的视图:比如
    1)、我想查某张表最近一次统计信息更新时间,如果这张表很久没有更新,那么就很难查询到,如果在syscat.tables中存在一列说明统计信息最后一次更新时间,那么还是很有帮助的。
    2)、太多的show stats但缺少直方图的视图查询(默认mysql库下的太不直观),比如快速的查询一个字段的分布频率(用于评估等值条件)和分位数(用于评估范围条件)情况,在视图中可以进行关联等操作。

  2. 对于TiDB来讲,多一个索引维护代价就增加较多,因此对索引的监控很重要,在TiDB中缺少自重启以来(或者统计信息搜集以来)索引和表的使用情况,包括:时间周期内某索引的IndexOnlyScan次数,IndexScan次数,IndexFullScan次数,全表扫描次数(或全分区扫描)等等,这样可以让DBA和开发人员根据索引使用情况来进行评估是否删减。

  3. 数据库提供的监控数据层次不太清晰,比如应分为数据库层、连接层、事务层、语句层。对于每一层还有很多指标需要更细力度的设计,可以参考DB2或者Oracle(个人认为DB2设计的更简单易用清晰明了)做下加强。目前对于连接泄露,事务执行情况(是否包含多个增删改,修改过多少记录),语句的指标(rows_read,rows_select,用了多少数据读,索引读,CPU,IO等)都还较为粗糙,希望能进一步加强,最好整体设计参考DB2、Oracle做一个TiDB自己专有的视图库。

  4. 后台作业应统一视图来进行查询当前进度和近期历史,将统计信息、备份、DDL统一起来,且都可以利用kill进行杀掉。

2 个赞