mysql schema数量限制_mysql schema设计优化 | 学步园

本文探讨了MySQL数据库设计中的优化策略,包括适度冗余以减少JOIN操作、大字段垂直分拆以节省IO开销、大表水平分拆以提高查询效率,以及准实时优化以利用缓存提高性能。此外,还强调了选择合适数据类型的重要性,如避免使用不必要的DECIMAL类型和合理选择VARCHAR的最大长度。
摘要由CSDN通过智能技术生成

mysql前期的设计问题会给后期的开发维护造成很大的问题,所以在mysql数据库的设计阶段就应该保证尽可能的高效,尽可能的减小后期开发和维护代价。

如何设计

1.适度冗余, 让query尽量减少join

虽然optimizer会对query进行一定的优化,但有时候遇见复杂的join,优化效果并不令人满意,再加上本来join的性能开销,所以需要尽量的减少join,而需要通过冗余来实现。比如:有两个数据表分别为用户信息表和用户发帖表,在展示发帖列表时,如果没有冗余的话,两个表要join以取得想要的发帖信息和用户昵称,但如果考虑冗余,用户昵称占用空间不大,如果在发帖表里增加这么一个字段的话,在展示列表时就不用做join操作了,性能会得到很大的改善。

但冗余也会带来一些问题,比如在发帖表里增加了用户昵称字段,就得维护两份用户昵称数据,为了保证数据的一致性,在用户昵称发生改变时,就得向两个表做更新操作,程序中就得做更多的处理。但相比的话,更新频率显然不及查询频率,这样通过增加少量的更新操作会换来更大的性能提升,这也是在项目中经常采用的优化手段。

2. 大字段垂直分拆

所谓的大字段,没有一个很严格的标准,常用的是如果一个字段的大小占整条记录的50%以上,我们就视为其为大字段。

大字段垂直分拆相比适度冗余是完全相反的操作,适度冗余是将别的表中的字段放进一个表中,而大字段分拆是将自身的大字段拆分出去放进另一个表中。

这两个优化策略貌似是矛盾的,但要根据具体的应用场景来分析,适度冗余是因为在频率较高的查询中要使用该字段&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值