![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL
文章平均质量分 73
MySQL
萝卜阿咕咕
这个作者很懒,什么都没留下…
展开
-
分布式与集群的差别
分布式: 通俗意义上来讲,分布式是将一个整体按照分布到不同地方,只要一个节点出现问题,则会导致系统出现问题分布式就是将多台服务器集中在一起,每台服务器都实现总体中的不同业务。每台服务器都缺一不可,如果某台服务器发生宕机了,则部分功能缺失,将导致整体无法运行。分布式存在的作用主要是将应用程序的多个功能分配到多个服务器上去处理,细化了应用程序的功能模块,能够减缓服务器的压力,大幅度的提高效率。集群: 各个集群上内容都是一致,如果一个集群出现问题无法使用,则其他...原创 2022-04-11 15:59:28 · 4250 阅读 · 0 评论 -
BASE理论
Base理论其实也就是保证了分区容错性、基本可用性与最终一致性,其实相比较CAP来说,C(强一致性)进行了一个取舍,确保了最终的一致性在CAP中,我们谈到,因为P(分区容错性)总是存在的,放弃不了。另外,可用性、一致性也是我们一般系统必须要满足的,如何在可用性和一致性进行权衡,所以就出现了各种一致性的理论与算法。BASE理论是:BASE是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency)。BASE是对CAP中一转载 2022-04-07 18:13:12 · 1573 阅读 · 0 评论 -
CAP理论
无论你是一个系统架构师,还是一个普通开发,当你开发或者设计一个分布式系统的时候,CAP理论是无论如何也绕不过去的。本文就来介绍一下到底什么是CAP理论,如何证明CAP理论,以及CAP的权衡问题。CAP理论:一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。Consistency 一致性一致性指“all nodes see the same data at the same tim转载 2022-04-07 18:12:06 · 185 阅读 · 0 评论 -
缓存与数据库的双写一致性
(这边的一致性一般表示的是最终的一致性,因为很难做到强一致性)一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的。强一致性:这种一致性级别是最符合用户直觉的,它要求系统写入什么,读出来的也会是什么,用户体验好,但实现起来往往对系统的性能影响大 弱一致性:这种一致性级别约束了系统在写入成功后,不承诺立即可以读到写入的值,也不承诺多久之后数据能够达到一致,但会尽可能地保证到某个时间级别(比如秒级别)后,数据能够达到一致状态 最终一致性:最终一致性是弱一致性的一个特例,系转载 2022-04-06 13:59:52 · 285 阅读 · 0 评论 -
MySql之日志
整个流程Buffer PoolBuffer Pool (缓冲池)是InnoDB存储引擎中非常重要的内存结构,顾名思义,缓冲池其实就是类似 Redis 一样的作用,起到一个缓存的作用,因为我们都知道MySQL的数据最终是存储在磁盘中的,如果没有这个 Buffer Pool 那么我们每次的数据库请求都会磁盘中查找,这样必然会存在 IO 操作,这肯定是无法接受的。但是有了 Buffer Pool 就是我们第一次在查询的时候会将查询的结果存到 Buffer Pool 中,这样后面再有请求的...转载 2022-04-06 11:03:27 · 865 阅读 · 0 评论 -
MySql之MVCC
MVCC (Multiversion Concurrency Control)中文全称叫多版本并发控制,是现代数据库(包括MySQL、Oracle、PostgreSQL等)引擎实现中常用的处理读写冲突的手段,目的在于提高数据库高并发场景下的吞吐性能。如此一来,不同的事务在并发过程中,SELECT操作可以不加锁而是通过MVCC机制读取指定的版本历史记录,并通过一些手段保证保证读取的记录值符合事务所处的隔离级别,从而解决并发场景下的读写冲突。下面举一个多版本读...转载 2022-04-06 10:06:37 · 127 阅读 · 0 评论 -
MySQL三范式
三范式其实就是一种建议的规范,跟resful规范一样,只是建议可以这样遵守;为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。第一范式(1NF): 保证了每列的原子性;也就是数据库的每一列的字段都是不可分割的原子性例如:第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库满足了第一范式。第一范式需要根据系统的实际需求来定,比如有一张用户信息表:一般来说"住址"设计成一个字段...转载 2022-04-02 17:11:56 · 2229 阅读 · 0 评论 -
MySQL事务之ACID理论
原子性、一致性、隔离性、持久性1、原子性: 事务的原子性是指事务必须是一个院子的操作序列单元,就是各项操作在一次执行中,要么全部成功,要么全部失败;只要任何一项操作失败,都会导致整个事务失败,其他已经执行的操作,都将被撤销回滚;只有所有的操作都成功,整个事务才成功代码中我们经常使用@Transactional注解来标记事务的原子性2、一致性: 事务的一致性是指事务的执行不能破坏数据库数据的完整性和一致性,一个事务在执行前后,数据库都必须处于一致性状态。换句话说,事务的执行...转载 2022-03-31 17:39:05 · 116 阅读 · 0 评论 -
数据库之事务隔离级别
并发事务处理带来的问题脏读: 事务A读取到事务B未提交的数据,并且后续事务B的数据回滚,导致事务A读取到的数据是一个没有的数据,这成为脏读幻读: 事务A读取数据时,读取到的是一条数据;这时事务B对数据进行了増删等操作,导致事务A再读取时,读到的是两条的数据,数据条数不一致,这就是幻读脏读与幻读来说,脏读主要是对数据进行修改,幻读主要是对数据进行增删不可重复读: 事务A读取到了事务B已经提交的修改数据。通俗的讲,一个事务范围内,多次...转载 2022-03-31 14:59:55 · 211 阅读 · 0 评论 -
MySQL之存储引擎
存储引擎就是存储数据,建立索引,更新査询数据等等技术的实现方式。存储引擎是基于表的,而不是基于库的。所以存储引擎也可被称为表类型。一般来说,MySQL常用的存储引擎有三种、MyISAM、InnoDB、Memery;这三种来说存储类型都各不同,我们最常用也是默认使用的是InnoDBMyISAM它支持 B-tree/FullText/R-tree 索引类型,缺点:不支持事务(同时成功时,才可记录)(索引与数据分开存储,两个文件无法做到一致性),不支持行级锁,也不支...原创 2022-03-30 17:29:11 · 642 阅读 · 0 评论 -
MySql之整体架构
MySQL整体架构与所有服务端软件一样,MySQL采用的也是C/S架构,即客户端(Client)与服务端(Server)架构,我们在使用MySQL的时候,都是以客户端的身份,发送请求连接到运行服务端的MySQL守护进程,而MySQL服务器端则根据我们的请求进行处理并把处理后的结果返回给我们,这个过程可以简单地抽像成下面的示意图:客户端:在安装后MySQL之后,在其安装目录的bin目录下,有一个mysql命令,这就是一般我们所说的MySQL客户端,不过这是MySQL官方提供的命令行客户端。原创 2022-03-30 16:42:48 · 924 阅读 · 0 评论 -
MySQL的索引
1、什么叫索引索引是一种数据结构,帮助MySQL高效获取数据的数据结构;MySql官方对索引的定义为:索引是帮助MySql高效获取数据的数据结构。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。个人对于MySql索引的理解:在数据之外,数据库系统还维护着满足特定查找算法的数据结构,包括B+树或者Hash表。由于存储引擎表示的是数据在磁盘上面的不同的组织形式,所以索引底层采用哪种数据结构是跟转载 2022-03-29 10:36:18 · 186 阅读 · 0 评论 -
数据库表中加索引
MySQL中我们为了可以加快查询效率,可以将经常用到的查询属性等加上索引,在添加到索引中的属性,在保存时,就会直接生成对应数据的B+树(BTREE)(一般是这种索引方式),方便后续进行查询时,可以快速的索引到查询的内容;这样可以大大加快效率(一般来说,可能会从原先几秒的处理时间,缩短至零点几秒时间)数据索引用法:这边的名,一般来说命名为index_XXX栏位:需要进行索引的具体属性,可以是单个也可以是多个组合的情况索引类型:1、normal:表示普通索引2、unique:表示原创 2022-03-28 18:05:50 · 1933 阅读 · 0 评论 -
MySQL索引原理
1、索引的本质索引的本质是一种排好序的数据结构,很像我们字典中的目录,通过一些方法2、索引的分类在数据库中,索引是分很多种类的(千万不要狭隘的认为索引只有 B+ 树,那是因为我们平时使用的基本都是 MySQL)。而不同的种类很显然是为了应付不同的场合,那索引到底有那些种类呢?下面就让我们来大致的了解下。2.1:Hash索引Hash 索引是比较常见的一种索引,他的单条记录查询的效率很高,时间复杂度为1。但是,Hash索引并不是最常用的数据库索引类型,尤其是我们常用的Mysql In.转载 2022-03-28 15:40:59 · 131 阅读 · 0 评论