文章目录
作者:禅与计算机程序设计艺术
1.背景介绍
分库分表
随着互联网公司的发展,网站的访问量和数据量不断增加,单个数据库无法存储处理这些数据的需求越来越强烈,而解决这一难题的办法就是采用分库分表的方法将数据水平切分到多个数据库上。
分库分表可以按照业务逻辑、数据量、访问量等进行切割,在保证应用服务的同时,可以有效地缓解单库性能瓶颈问题。当然,分库分表也带来了复杂性和管理上的挑战。
分片集群
通常情况下,数据库的横向扩展需要购买更大的服务器,并通过拆分的方式实现,这种方式对开发者和运维人员来说都是比较费劲的。因此,2007年左右,很多公司开始考虑使用分布式数据库技术如MySQL的集群方案进行横向扩展。
基于分片的集群方案主要由两部分组成:分片存储引擎(如Mycat)和分片路由组件(如Sharding-JDBC)。通过配置和使用分片路由组件,用户可以像操作一个整体一样,对分片集群中的各个节点进行增删改查操作。
分布式事务
随着互联网服务的广泛普及,网站访问量越来越高,用户的操作频率也越来越快,数据操作的一致性和可用性成为极其重要的问题。如果发生数据丢失、错误、损坏