“这是我参与更文挑战的第9天,活动详情查看: 更文挑战”
我们知道一个数据库的容量是有限的,当业务飞速发展的时候成为技术瓶颈的不是应用而是数据库。我们业务可以很垂直,当前QPS过高时我们可以通过增加机器部署应用解决。当时数据库数据暴增那么怎么处理呢?所以说数据库是最终的瓶颈之一。
业界主要分为两种方式
1.数据库垂直拆分
数据库垂直拆分通常是按照业务进行拆分,当然如果数据库按照业务进行拆分那么我们对应的服务也会垂直拆分。原因是业务直接进行隔离避免业务之间相互影响。
2.水平拆分
水平拆分的原因当我们数据库数据库量非常大的时候,就会考虑进行水平拆分。这里有个小小的建议水平拆分数据库之前我们最好先进行数据库垂直拆分,为什么呢?因为垂直拆分很重要的一个原因是数据隔离这样会使冷热数据分离,避免了不必要的水平拆分。
看到这里大家会觉得,如果用户库比较大但是又达不到水平分库那么我们怎么处理呢?
通常这种情况就是单表过大,我们需要进行分表。分表通常我们会按照用户的ID或者账户进行hash分表。
以上是万能的解决方案吗?
答案肯对是不对的。
还是上述例子如果用户表属于热点数据,公司中调用用户服务特别频繁,我们只是进行分表就无法解决了。
既然是热点数据首先考虑的是高可用的问题,如果是一个库很显然很有可能会出现单点故障。那么我们通过上一篇文章进行主从是不是就可以解决问题了?
答案是可以的。我们还是需要具体到业务场景进行分析,用户也分活跃用户和非活跃用户。其实我们还可以进行切分保证热点数据进行高可用。
最后总结一下,数据库数据暴增需要进行拆分。拆分的原则是冷热数据分离,热点数据水平拆分。保证热点数据高可用。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END