![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
markzhu_
这个作者很懒,什么都没留下…
展开
-
MYSQL-Mysql读锁,写锁(悲观锁),乐观锁,分布式锁运用场景
我们知道为了控制并发,我们可以使用mysql锁机制来实现,但是不同的锁的粒度不同,运用场景也不同。1,读锁描述:即事务A 使用共享锁 获取了某条(或者某些)记录时,事务B 可以读取这些记录,可以继续添加共享锁,但是不能修改或删除这些记录(当事务B 对这些数据修改或删除时会进入阻塞状态,直至锁等待超时或者事务A提交)场景:读取结果集的最新版本,同时防止其他事务产生更新该结果集主要用在需要数据依存关系时确认某行记录是否存在,并确保没有人对这个记录进行UPDATE或者DELETE操作,因为可能因为原创 2020-12-01 16:34:09 · 525 阅读 · 0 评论 -
MYSQL-三张图搞懂mysql索引
什么是索引简单一句话索引就是一种排好序的数据结构,对于mysql来说这种数据结构就是B+树(虽然也支持hash表,但几乎不用)三张图理解索引数据结构(innodb引擎)三张图分别是 聚簇索引 ,普通索引,联合索引索引规则至于网上说的几条索引军规及神秘时候索引失效情况,死记硬背是不行的,按照图示去想一想一切都豁然开朗...原创 2020-09-18 09:56:38 · 97 阅读 · 0 评论 -
MYSQL-MYSQL中各种锁
为了方便以后复习和详细讲解,先把遇到的各种锁做个简单的记录和描述话不多说先上图我们听说过读锁、写锁、共享锁、互斥锁、行锁等等各种名词,简单对这些锁进行了分类加锁机制:1、乐观锁:先修改,保存时判断是够被更新过,应用级别2、悲观锁:先获取锁,再操作修改,数据库级别锁粒度:表级锁:开销小,加锁快,粒度大,锁冲突概率大,并发度低,适用于读多写少的情况。页级锁:BDB存储引擎行级锁:Innodb存储引擎,默认选项兼容性:S锁,也叫做读锁、共享锁,对应于我们常用的 select * from原创 2020-09-14 16:10:53 · 104 阅读 · 0 评论 -
MYSQL-MVCC机制和四种事务隔离级别
MVCC机制和四种事务隔离级别什么是多版本并发控制(MVCC:multi-version concurrency control )MVCC定义:多版并发控制系统。可认为是行级锁的一个变种,它能够避免更多情况下的加锁操作。作用:避免一些加锁操作,提升并发性能。实现:通过在每行记录的后面保存行的创建时间和过期时间或删除时间(它们是隐藏的),这两个时间实际都是系统的版本号。每开始一个新的事务,版本号都会自动增加。具体原理4.1) select:innoBD查询时会检查以下两个条件:一个是数据行.原创 2020-09-14 15:46:28 · 695 阅读 · 0 评论 -
MYSQL-多表连接查询(图文)
简介表连接的方式内连接 查询的是两张表交集数据,即主外键关联数据。关键字 inner join on外连接 查询的是左表中所有数据和主外键关联数据。关键字 left outer join on,right outer join on自连接表连接示例Step 1: 创建两张表:部门表dept 员工表emp,并将emp.dno外键关联到dept.didCREATE TABLE `dept` ( `did` int(10) NOT NULL AUTO_INCREMENT, `dn.原创 2020-08-29 11:54:31 · 332 阅读 · 0 评论 -
MYSQL-外键约束(图文)
外键的使用条件:两个表必须是InnoDB表,MyISAM表暂时不支持外键外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以,且被关联字段必须保证唯一四种外键约束方式RESTRICT(约束):如果出现在删除时,意思是约束外键主键did记录(主表中的记录)不能直接删除,必须先删除被约束的表(从表)字段中dept_id所有这个外键主键值对应的记录原创 2020-08-29 11:52:31 · 391 阅读 · 0 评论