[TOC] 一、何为乐观锁与悲观锁 二、悲观锁 适用于写较多,保证数据安全 三、乐观锁 适用于读较多,保证并发吞吐量 四、两种锁的使用场景 ...
分类:
其他好文 时间:
2019-12-16 11:30:16
阅读次数:
93
线程带来的风险 线程安全性问题 出现安全性问题的需要满足的条件:多线程环境、有共享资源、非原子性操作 活跃性问题 死锁 饥饿 活锁 性能问题 cpu上下文切换会有性能问题(cpu分时间片执行) 锁 自旋锁 自旋其实就是当一个线程获取到锁之后,其他的线程会进行阻塞等待,一直到这个线程释放锁后才能进入 ...
分类:
编程语言 时间:
2019-12-15 21:55:20
阅读次数:
98
? 1.存储引擎 ? 存储引擎是用于根据不同的机制处理不同的数据。 ? 查看mysql中所有引擎: ? show engines; myisam: 5.5以前老的版本使用的存储引擎 blackhole: 类似于队列中的数据,存进去消失 innodb: 默认使用存储引擎 支持事务 行锁 外键 memo ...
分类:
数据库 时间:
2019-12-13 21:15:18
阅读次数:
97
恢复内容开始 存储引擎 存储引擎是用于根据不同的机制处理不同的数据。 查看mysql中所用引擎: show engines; create table t1(id int)engine=innodb; #innob:默认使用存储引擎 :支持事务,行锁,外键 create table t2(id in ...
分类:
数据库 时间:
2019-12-11 21:07:45
阅读次数:
92
Next-Key Locks = Gap+record => 间隙锁+行锁,执行delete/update操作时会加Next-Key Locks ,如果where条件是可以唯一确定一行的话,会被升级为普通行锁不会加区间锁。 1、delete/update操作无索引列=>表锁 2、delete/upd ...
分类:
数据库 时间:
2019-12-11 19:22:38
阅读次数:
107
[TOC] MySQL存储引擎 什么是存储引擎? 数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。 用于根据不同的机制处理不同的数据 提示: 事务型数据库的首选引擎,支持事务安全表(ACID),行锁定 和 外键。( 事务主要用于处理操作量大,复杂度高 ...
分类:
数据库 时间:
2019-12-11 17:13:02
阅读次数:
122
总结 1.两种存储引擎各有各的有点,MyISAM专注性能,InnoDB专注事务。两者最大的区别就是InnoDB支持事务,和行锁。 2.InnoDB采用MVCC(Multi-Version Concurrency Control 多版本并发控制)来支持高并发,一种行级锁的变种。MVCC是通过保存数据在 ...
分类:
数据库 时间:
2019-12-09 01:10:40
阅读次数:
121
你需要知道的 之前我们介绍了排他锁,其实innodb下的记录锁(也叫行锁),间隙锁,next-key锁统统属于排他锁。 行锁 记录锁其实很好理解,对表中的记录加锁,叫做记录锁,简称行锁。 生活中的间隙锁 编程的思想源于生活,生活中的例子能帮助我们更好的理解一些编程中的思想。 生活中排队的场景,小明, ...
分类:
数据库 时间:
2019-11-29 13:09:31
阅读次数:
77
1. 若复制中binlog使用row格式,对大表使用pt osc把数据从旧表拷贝到临时表,期间会产生大量的binlog,从而导致延时 2. pt osc在搬数据过程中insert...select是有行锁的,会降低事务并行度;且pt osc搬数据过程中生成的binlog不是并行的,所以在slave不 ...
分类:
其他好文 时间:
2019-11-25 18:05:54
阅读次数:
82
根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。 一、全局锁 全局锁就是对整个数据库实例加锁。MySQL 提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)。当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其 ...
分类:
其他好文 时间:
2019-11-19 15:41:10
阅读次数:
68