MySQL8-可扩展设计的基本原则

事务相关性最小化原则

分布式事务本身就是一个非常复杂的机制,不管是商业的大型数据库系统还是各开源数据库系统,虽然大多数数据库厂家基本上都实现了这个功能,但或多或少都存在各种各样的限制。而且也存在一些Bug,可能造成某些事务并不能很好的保证,或者是不能顺利的完成。

①进行水平扩展设计的时候合理设计切分规则,尽可能保证事务所需数据在同一个MySQL Server 上,避免分布式事务。

②大事务切分成多个小事务,数据库保证各个小事务的完整性,应用控制各个小事务之间的整体事务完整性。

③结合上述两种解决方案,整合各自的优势,避免各自的弊端。

最后,我们还需要明白一个观点,那就是事务并不是越多越好,而是越少越好越小越好。不论我们使用何种解决方案,那就是在我们设计应用程序的时候,都需要尽可能做到让数据的事务相关性更小,甚至是不需要事务相关性。当然,这只是相对的,也肯定只有部分数据能够做到。但可能就是某部分数据做到了无事务相关性之后,系统整体复杂度就会降低很大一个层次,应用程序和数据库系统两方面都可能少付出很多的代价。

数据一致性原则

水平扩展

那我们又如何在水平扩展的同时又较好的保证数据一致性呢?经过很多人的实践,大家最后总结出了BASE 模型。即:基本可用,柔性状态,基本一致和最终一致。其实可以理解为非实时的一致性原则,应用系统通过相关的技术实现,让整个系统在满足用户使用的基础上,允许数据短时间内处于非实时状态,而通过后续技术来保证数据在最终保证处于一致状态。这个理论模型说起来确实听简单,但实际实现过程中我们也会遇到不少难题。

高可用及数据安全原则

不论如何调整设计系统的架构,系统的整体可用性不能被降低。数据安全原则。要想达到高可用数据库中的数据就必须是足够安全的。这里所指的安全并不针对恶意攻击或者窃取方面来说,而是针对异常丢失。也就是说,我们必须保证在出现软/硬件故障的时候,能够保证我们的数据不会出现丢失。数据一旦丢失,根本就无可用性可言了。而且,数据本身就是数据库应用系统最核心的资源,绝对不能丢失这一原则也是毋庸置疑的。要确保高可用及数据安全原则,最好的办法就是通过冗余机制来保证。所有软硬件设备都去除单点隐患,所有数据都存在多份拷贝。这样才能够较好的确保这一原则。

猜你喜欢

转载自blog.csdn.net/attack_breast/article/details/84547124