加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySQL数据库开发的几条准则

发布时间:2022-03-03 06:45:09 所属栏目:编程 来源:互联网
导读:这些原则都是经历过实战总结而成 每一条原则背后都是血淋淋的教训 这些原则主要是针对数据库开发人员,在开发过程中务必注意 一、核心原则 1.尽量不在数据库做运算 俗话说:别让脚趾头想事情,那是脑瓜子的职责 作为数据库开发人员,我们应该让数据库多做她
       这些原则都是经历过实战总结而成
 
      每一条原则背后都是血淋淋的教训
 
      这些原则主要是针对数据库开发人员,在开发过程中务必注意
 
一、核心原则
 
1.尽量不在数据库做运算
 
     俗话说:别让脚趾头想事情,那是脑瓜子的职责
 
      作为数据库开发人员,我们应该让数据库多做她所擅长的事情:
 
尽量不在数据库做运算
复杂运算移到程序端CPU
尽可能简单应用MYSQL
举例:
 
在mysql中尽量不要使用如:md5()、Order by Rand()等这类运算函数
 
2.尽量控制单表数据量
 
大家都知道单表数据量过大后会影响数据查询效率,严重情况下会导致整个库都卡住
 
通过USERID来分表(根据ID区间分表):在金融行业应用较多,用户量大、用户特征明显
按DATE分表(按天、周、月分表):在电信行业应用非常多,如用户上网记录表、用户短信表、话单表等
按AREA分表(省、市、区分表)
其他
分区表的适用场景主要有:
 
① 表非常大,无法全部存在内存,或者只在表的最后有热点数据,其他都是历史数据;
 
② 分区表的数据更易维护,可以对独立的分区进行独立的操作;
 
③ 分区表的数据可以分布在不同的机器上,从而高效使用资源;
 
④ 可以使用分区表来避免某些特殊的瓶颈;
 
⑤ 可以备份和恢复独立的分区。
 
但是使用分区表同样有一些限制,在使用的时候需要注意:
 
① 一个表最多只能有 1024 个分区;
 
② 5.1版本中,分区表表达式必须是整数, 5.5可以使用列分区;
 
③ 分区字段中如果有主键和唯一索引列,那么主键列和唯一列都必须包含进来;
 
④ 分区表中无法使用外键约束;
 
⑤  对于 MyISAM 表,使用分区表时需要打开更多的文件描述符。
 
3.尽量控制表字段数量
 
单表的字段数量也不能太多,根据业务场景进行优化调整,尽量调整表字段数少而精,这样有以下好处:
 
IO高效
全表遍历
表修复快
提高并发
alter table更快
那究竟单表多少字段合适呢?
 
4.平衡范式与冗余
 
数据库表结构的设计也讲究平衡,以往我们经常说要严格遵循三大范式,所以先来说说什么是范式:
 
第一范式:单个字段不可再分。唯一性。
 
第二范式:不存在非主属性只依赖部分主键。消除不完全依赖。
 
第三范式:消除传递依赖。
 
用一句话来总结范式和冗余:
 
冗余是以存储换取性能,
 
范式是以性能换取存储。
 
所以,一般在实际工作中冗余更受欢迎一些。
 
模型设计时,这两方面的具体的权衡,首先要以企业提供的计算能力和存储资源为基础。
 
其次,一般互联网行业中都根据Kimball模式实施数据仓库,建模也是以任务驱动的,因此冗余和范式的权衡符合任务需要。
 
例如,一份指标数据,必须在早上8点之前处理完成,但计算的时间窗口又很小,要尽可能减少指标的计算耗时,这时在计算过程中要尽可能减少多表关联,模型设计时需要做更多的冗余。

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读