mysql MVCC实现原理
作者:向前的步伐 / 发表: 2022年5月1日 08:42 / mysql/ 阅读量:758
MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它使得大部分支持行锁的事务引擎,不再单纯的使用行锁来进行数据库的并发控制,取而代之的是把数据库的行锁与行的多个版本结合起来,只需要很小的开销,就可以实现非锁定读,从而大大提高数据库系统的并发性能。
MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它使得大部分支持行锁的事务引擎,不再单纯的使用行锁来进行数据库的并发控制,取而代之的是把数据库的行锁与行的多个版本结合起来,只需要很小的开销,就可以实现非锁定读,从而大大提高数据库系统的并发性能。
PXC是mysql的套高可用集群的解决方案,跟传统的主从复制集群相比,PXC解决了数据复制延迟的问题,基本上可以达到实时同步,而且节点之间的关系是对等的。PXC最关注的是数据的一致性,对待事务的行为,要么在所有节点上执行,要么都不执行,它的实现机制决定了它对待一致性非常严格,这也能非常完美的保证mysql集群的数据一致性。
索引是帮助数据库高效获取数据的数据结构,索引是基于数据表创建的,它包含了表中某些列的值以及记录对应的地址,并把这些值存储在一个数据结构中。索引采用的数据结构有hash、平衡二叉树、B树、B+树。
随着互联网的发展,用户量迅速扩大,对系统的要求也越来越高。关系型数据库容易成为系统的瓶颈,单机的存储能力、连接数、处理能力都有限。当单表的数据量达到1000W或者100G以后,数据库的很多操作性能就会严重下降。此时就要考虑对数据库进行切分,减少数据库的压力,缩短查询时间。
当网站的有大量的并发访问时,除了在服务应用实现负载均衡,还需要分解单台数据库服务器的压力,大量的数据库连接到同一台机器,数据库必然崩溃,数据就会丢失。这时除了使用缓存减少数据库的压力,还可以设置数据库集群,使用mysql的主从配置,实现读写分离,减少数据库的压力。