如何通过水平分表提升几十万倍效率

现在的软件都建立在数据的基础上,为了方便处理大量的数据可以利用关系型数据库,比如Oracle,Mysql,它们都提供了:

  • 事务:于是并发对数据处理变的容易
  • 分表:只需要改一个地方,维护数据一致性,避免冗余
  • 标准SQL:便捷的对大量数据执行处理
  • 索引:内部为BTree查询非常高效

虽然有很多优点,但数据库也有其能力极限,糟糕的设计不只是增加代码复杂度,在数据量特别大的时候,有的查询需要花费数分钟甚至更久,毫无用户体验,而一旦数据库设计好,但代码没进行规范分层导致和数据库绑死,想再改数据库几乎不再可能,如何设计数据库,利用数据库的优点,通过估算来衡量不同的设计,这篇文章将在一份样本数据的基础上进行不同的水平分表,然后分析各自的优缺点

数据

如下两份数据

record type name item1 item2 item3
record1 type1 name1 1.1 2.1 3.1
record2 type2 name1 1.2 2.2 3.2
record type name item2 item3 item4
record3 type1 name3 2.3 3.3 4.3
record4 type2 name4 2.4 3.4 4.4

从上面可以看到不同record有少数固定的共同字段比如type,name,还有些字段并不固定比如item,而且这里假设item可能有几十万之多,记为M,上面表

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值