成为架构师课程系列数据库性能优化:写入数据量增加时,如何实现分库分表?如何保证分库分表后 ID 的全局唯一性?

Posted 禅与计算机程序设计艺术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了成为架构师课程系列数据库性能优化:写入数据量增加时,如何实现分库分表?如何保证分库分表后 ID 的全局唯一性?相关的知识,希望对你有一定的参考价值。

数据库优化方案 2:写入数据量增加时,如何实现分库分表?

 

 

前一节课,我们学习了在高并发下数据库的一种优化方案:读写分离,它就是依靠主从复制的技术使得数据库实现了数据复制为多份,增强了抵抗 大量并发读请求的能力,提升了数据库的查询性能的同时,也提升了数据的安全性,当某一个数据库节点,无论是主库还是从库发生故障时,我们还有其他的节点中存储着全量的数据,保证数据不会丢失。此时,你的电商系统的架构图变成了下面这样:

这时,公司 CEO 突然传来一个好消息,运营推广持续带来了流量,你所设计的电商系统的订单量突破了五千万,订单数据都是单表存储的,你的压力倍增,因为无论是数据库的查询还是写入性能都在下降,数据库的磁盘空间也在报警。所以,你主动分析现阶段自己需要考虑的问题,并寻求高效的解决方式,以便系统能正常运转下去。你考虑的问题主要有以下几点:

  1. 系统正在持续不断地的发展

    注册的用户越来越多,产生的订单越来越多,数据库中存储的数据也越来越多,单个表的数据量超过了千万甚至到了亿级别。这时即使你使用了索引,索引占用的空间也随着数据量的增长而增大,数据库就无法缓存全量的索引信息,那么就需要从磁盘上读取索引数据,就会影响到查询的性能了。 

以上是关于成为架构师课程系列数据库性能优化:写入数据量增加时,如何实现分库分表?如何保证分库分表后 ID 的全局唯一性?的主要内容,如果未能解决你的问题,请参考以下文章

成为架构师课程系列高性能系统设计之分布式缓存

成为架构师课程系列性能优化技术之“池化技术”:如何减少频繁创建数据库连接的性能损耗?

成为架构师课程系列NoSQL:在高并发场景下,数据库和NoSQL如何做到互补?

java架构师大型分布式综合项目实战,高并发,集群,高可用,程序设计,性能优化,架构设计,负载均衡,大数据量

十年开发经验Java架构师,进阶加薪全靠它!

成为架构师课程系列怎样进行高性能高可用的高并发系统的设计?