前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解读数据库对象分布

解读数据库对象分布

作者头像
jeanron100
发布2018-12-21 16:50:58
3910
发布2018-12-21 16:50:58
举报

这是学习笔记的第 1817篇文章

在我们的工作中,其实我们对于自己所负责的数据库是不够清晰的,比如我们了解自己所负责的数据库中表,索引分布情况吗?这里我们不需要给出具体数字,而是有一个大概的比例就可以。 我想大多数人会忽略,一方面他只关注于他需要了解的业务,所以不需要关注额外的信息,另一方面因为权限等原因,他无法获得这些信息。

这些信息对于他来说,有没有用呢,其实是有的,如果一个数据库里存在上万张表,毫无疑问这是一种很糟糕的设计方式了。如果业务能够获得这些信息,他就不会像选择黑盒的处理方式一样不断的往里面填数据,这种改进是隐形的,另外我们制定了开发规范难以落地,一个原因就是信息不对称,你说这些信息是不是机密,显然不是,所以这些信息是我们可以共享给业务同学的。

这些信息对于DBA来说,有没有用呢,其实也是有的。我们处理问题,也是由被动模式变为主动模式,能够提前发现问题比遇到问题再解决的意义大得多,当然这种方式难以体现业务价值。我们换一种方式来理解,那就是我们主动反馈给业务同学,他们现在的数据库使用放存在哪些隐患,我们给出具体可行的建议,让他们也参与进来,我想这就是一种共赢。最终的结果是一样的,问题得到了解决,而且是商量着来的。

那么对于这件事情如何落地呢,一种是数字化,一种是可视化。其中可视化的方式体现的效果更好一些。

比如你看到这个数据库对象的分布情况,会有什么样的印象。

可以看到这个库中有700多张表,主键比例和表数据量持平,说明整体的设计还不错(当然从比例来看少部分表还是没有主键的),但是值得一提的是,整个数据库中的辅助索引比例过高,为什么加索引,本质上是为了查询快捷,辅助索引比重高,说明整个数据库的类型还是考虑了较多的查询需求。

这个库里的对象分布如下:

这个库的场景比较单一,只有表和主键,整体来说,和偏日志型写入的业务相关。

这个库的对象分布如下:

可以看到,表和主键的比例基本持平,含有少量的辅助索引,还有一部分的存储过程,在MySQL里面含有存储过程不是一种很良好的设计,一种可能是遗留问题,一种就是涉及了一些复杂的业务逻辑,但是可以确定的是,这个库是很难以做分布式扩展的。

这个库的对象分布如下:

这是一种相对理想的对象分布方式,表,主键:辅助索引的比例为4:4:2

没有存储过程,函数,从业务的角度来说,后期要做扩展和改进都是比较容易的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档