
mysql
文章平均质量分 77
Ann__Zhou
这个作者很懒,什么都没留下…
展开
-
乐观锁 悲观锁
乐观锁 和 悲观锁 是针对处理并发资源的采用的方式与mysql中提供的锁机制(表锁,行锁,排他锁,共享锁)不能混为一谈悲观锁:就是对于数据的处理持悲观态度,总认为会发生并发冲突,获取和修改数据时,别人会修改数据。所以在整个数据处理过程中,需要将数据锁。乐观锁:顾名思义,就是对数据的处理持乐观态度,乐观的认为数据一般情况下不会发生冲突,只有提交数据更新时,才会对数据是否冲突进行检测。如果检测有冲突,交给用户处理。悲观锁实现:利用 数据库 锁机制 比如mysql的排他锁,select.原创 2020-09-02 18:31:27 · 135 阅读 · 0 评论 -
mysql 索引
B-Tree:有序数组+平衡多叉树叶节点具有相同的深度,叶节点的指针为空所有索引元素不重复节点中的数据索引从左到右递增排列B+Tree:有序数组链表+平衡多叉树1.非叶子节点不存储data,只存储索引(冗余),可以放更多的索引2.叶子节点包含所有索引字段3.叶子节点用指针连接,提高区间访问的性能 双向指针区别:没有指针,效率低b+树非叶子节点上的data元素全部在叶子节点上,b树非叶子节点有data元素,b+减少空间,使b+树高度减少Ino...原创 2020-08-17 11:09:08 · 216 阅读 · 0 评论 -
事务acid,隔离级别,锁
事务:一个或一组SQL语句组成的一个执行单元,这个单元要么全执行,要么全不执行。是相互依赖的,其中某行语句发生失败或者错误,整个单元将会回滚(事务ACID原子性 :不可分割,要么全部成功,全部失败快照mvcc 多版本并发过程一致性:事务的执行结果必须使数据库从一个一致性状态到另一个一致性状态。比如:转账前后 两个账户的总金额保持不变数据库本身的约束 一致性读 一致性写一致性是事务最终的根本追求,通过原子性,隔离性,持久性 保证一致性的实现隔离性:并发执行的事务不会相互影.原创 2020-08-18 20:17:55 · 166 阅读 · 0 评论 -
数据库 undo log redo log bin log
逻辑日志:可以简单理解为记录的就是sql语句 物理日志:因为mysql数据最终是保存在数据页中的,物理日志记录的就是数据页变更undo log 记录逻辑日志,是InnoDB存储引擎的日志redo log 记录物理日志,是InnoDB存储引擎的日志binlog 是mysql的逻辑日志,并且由Server层进行记录,使用任何存储引擎的mysql数据库都会记录binlog日志redo log是循环写入,bin log是追加写入,不会覆盖之前的日志。在计算机操作系统中,...原创 2020-09-03 13:58:15 · 196 阅读 · 0 评论 -
mysql 锁机制
InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION)二是采用了行级锁Innodb行级锁InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点MySQL与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的。 InnoDB这种行锁实现特点意味着:只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁! mysql InnoDB引擎默认的修改数据语句:update,delete,insert都会自动给涉及到的数据加上.原创 2020-09-03 00:20:15 · 120 阅读 · 0 评论 -
数据库 死锁
数据库中两种基本的锁类型排它锁(Exclusive Locks,即X锁):当数据对象被加上排它锁时,其他的事务不能对它读取和修改。共享锁(Share Locks,即S锁):加了共享锁的数据对象可以被其他事务读取,但不能修改。事务之间对资源访问顺序的交替一个用户A 访问表A(锁住了表A),然后又访问表B;另一个用户B 访问表B(锁住了表B),然后企图访问表A;这时用户A由于用户B已经锁住表B,它必须等待用户B释放表B才能继续,同样用户B要等用户A释放表A才能继续,这就死锁就产生了。解.转载 2020-09-02 16:51:48 · 237 阅读 · 1 评论