数据库
林语棠
一剑光寒十四州
展开
-
InnoDB可重复读隔离级别下如何避免幻读?
InnoDB可重复读隔离级别下如何避免幻读?表象:快照读(非阻塞读)—伪MVCC内在:next-key锁,(行锁+gap锁)当前读:加锁的增删改查语句,无论什么锁,因为读取的是当前最新版本,还要保证并发事务不能修改当前记录,对读取记录加锁。快照读:可能读取到的数据不是最新版本而是历史版本。read committed级别下。当前读与快照读读取的版本一样。repeatable read...原创 2020-02-22 18:25:04 · 1024 阅读 · 0 评论 -
数据库锁(事务并发产生的问题及事务的隔离机制)
数据库锁(事务并发产生的问题及事务的隔离机制)事务并发引起的问题?1.更新丢失–一个事务的更新覆盖了其余的事务2.脏读–查看当前数据库隔离机制,并修改隔离级别为Read Uncommitted(读取未提交内容)在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)...原创 2020-02-20 16:11:54 · 252 阅读 · 0 评论 -
数据库的四大特性
事务的:原子性、一致性、分离性、持久性原子性、一致性、分离性、持久性(1) 原子性 事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。这种特性称为原子性。 事务的原子性要求,如果把一个事务可看作是一个程序,它要么完整的被执行,要么完全不执行。就是说事务的操纵序列或者完全应用到数据库或者完全不影响数据库。这种特性称为原子性。...原创 2020-02-20 13:40:03 · 2646 阅读 · 0 评论 -
数据库锁:myISAM和InnoDB关于锁方面的区别。
myISAM和InnoDB关于锁方面的区别。1.myISAM默认用的是表级锁,不支持行级锁。myISAM不支持事务。2.INnoDB 默认用的是行级锁,不支持表级锁。INnoDB支持事务对表级锁的理解:对于myISAM而言,对数据进行select查询会自动加上一个表级的读锁,而对表进行增删改的时候会自主加上一个写锁,当读锁未被释放,另一个session中想为表增加写锁,就会导致堵塞,直...原创 2020-02-14 16:20:38 · 247 阅读 · 0 评论 -
数据库索引理解,基于索引的二叉树,B树,B+树理解。
数据库索引理解,基于索引的二叉树,B树,B+树理解。理解索引从以下几个问题开始:1.为什么使用索引?- 快速查询数据通常查询数据,需要将全表扫描加载进入内存,耗时费力。为了避免全表扫描,采用类似字典方式增加索引,以提高查询效率。2.什么信息可以做索引?-主键,唯一键,普通键等。(后续详细说明)3.索引的数据结构?1.建立二叉树结构(复杂的有红黑树,平衡二叉树,线性二叉树)进行查找。2...原创 2020-02-10 18:35:29 · 1014 阅读 · 0 评论