首页 课程 师资 教程 报名

简述MySQL数据库开发核心原则

  • 2021-02-18 02:07:39
  • 1546次 动力节点

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL作为目前系统开发中最常用的数据库之一,因为其速度、可靠性和适应性而备受开发者的青睐。然而为了避免我们在MySQL数据库开发中遭遇致命的错误,我们需要恪守MySQL数据库开发核心原则。以下所列出的5条MySQL数据库开发核心原则是所有MySQL数据库开发时应该遵守的。希望可以引起重视。

1.尽量避免在数据库中做运算

“使鸡司夜,令狸执鼠,皆用其能,上乃无事。”古人都早已参透各司其职,各尽其责的重要性,作为现代化的数据库开发人员,我们更应该让数据库做其本职工作,而不是”物尽其用”。所以,我们应该尽量避免在数据库中做一些运算,复杂运算转移到程序端CPU,那里才是它的战场。我们应该避免在数据库中使用复杂的运算函数,毕竟术业有专攻,这不是数据库的强项,处理复杂运算的任务就交给CPU好了。

2.尽量控制表字段数量

单表的字段数量不能太多,否则会影响数据库的优化。根据业务场景进行优化调整,尽量调整表字段数少而精,这样可以使得IO高效,能够快速的遍历全表,二区还能提高数据库的并发性。

通过特定标准来控制字段数量,按照单表1G体积,500W行数据量进行评估:顺序读1G文件需N秒,单行不超过200Byte,单表不超50个纯INT字段,单表不超20个CHAR(10)字段,建议单表字段数上限控制在20~50个。

3.平衡范式与冗余

数据库表结构的设计也讲究平衡,以往我们经常说要严格遵循三大范式,所以先来说说什么是范式。第一范式:单个字段不可再分。唯一性。第二范式:不存在非主属性只依赖部分主键。消除不完全依赖。第三范式:消除传递依赖。用一句话来总结范式和冗余:冗余是以存储换取性能,范式是以性能换取存储。所以,一般在实际工作中冗余更受欢迎一些。模型设计时,这两方面的具体的权衡,首先要以企业提供的计算能力和存储资源为基础。其次,一般互联网行业中都根据Kimball模式实施数据仓库,建模也是以任务驱动的,因此冗余和范式的权衡符合任务需要。例如,一份指标数据,必须在早上8点之前处理完成,但计算的时间窗口又很小,要尽可能减少指标的计算耗时,这时在计算过程中要尽可能减少多表关联,模型设计时需要做更多的冗余。

4.拒绝三个B

由于数据库的并发就像城市交通,呈非线性增长,这就要求我们在做数据库开发的时候一定要注意高并发下的瓶颈,防止因高并发造成数据库瘫痪。

这里的3B是指:

大SQL(BIG SQL):要减少

大事务(BIG Transaction)

大批量(BIG Batch)

5.尽量控制单表数据量

大家都知道单表数据量过大后会影响数据查询效率,严重情况下会导致整个库都卡住。一般情况下,按照一年内单表数据量预估:纯INT不超过1000W,含CHAR不超过500W,同时要尽量做好合理的分表,使单表数据量不超载,常见的分表策略有:通过USERID来分表(根据ID区间分表):在金融行业应用较多,用户量大、用户特征明显。按DATE分表(按天、周、月分表):在电信行业应用非常多,如用户上网记录表、用户短信表、话单表等。按AREA分表(省、市、区分表)。

实际上,这些MySQL数据库开发的核心原则或者说MySQL数据库开发的注意事项在网上有很多大同小异的版本,其实主要还是前辈用引以为鉴的历史事件得出的宝贵的经验教训。准确的来说,这些原则就是MySQL数据库开发的红线,一旦触及,可能会发生意想不到的后果。所以,小伙伴们请谨记这些MySQL数据库开发的核心原则,使得我们的MySQL数据库开发更加合理更加规范。在后面的MySQL教程中,对这些原则有很好的讲解。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交