![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
文章平均质量分 95
spark man
crazy for coding
展开
-
mysql中的锁
此次实验所使用的mysql版本为mysql8:因为我们可以在中看到锁的情况。引擎是innodb。事务隔离级别是RR。mysql中的锁可以按照锁的粒度分,表锁就是其中的一种(另一种是行锁)。虽然锁一整张表在实际操作中是不明智的,但我们还是探究一下。准备的表:我们有主键索引以及二级索引。然后插入一些数据:为了看到中锁的情况,我们需要设置:S锁首先看看表级别的读锁:读锁可以被多次获取(session1和session2同时获取到了读锁)。我们可以看到的数量增加了。然后我们查看锁的情况:可以看到一个锁(原创 2022-06-29 19:39:51 · 1204 阅读 · 1 评论 -
mysql乐观锁实例
mysql乐观锁介绍例子介绍mysql乐观锁是mvcc的一种实现。mvcc就是multiple version concurrent control。所谓乐观锁,就是假设数据不会冲突。所以你可以尽情地update,submit。如果发现有并发问题了,mysql可以将失败结果返回给用户。悲观锁就是一开始就要加锁,心情很悲观。我们知道innodb有行锁,两个用户同时update一条数据的时候,稍慢的用户会阻塞等待,直到抢到锁的事务commit之后,他才能修改。这里的等待是很耗性能的。利用一个版本原创 2020-06-30 20:38:44 · 803 阅读 · 2 评论 -
mysql的事务及事务的隔离级别
transactionmysql transactionmultiple transactionsmysql transaction事务就是一组sql语句同时执行,要么都成功,要么都失败。因为mysql的update,delete等本身就是事务,而且默认是自动提交的,所以为了演示一组sql的行为,我们要关掉自动提交。准备的表:关闭自动提交:我们要演示的逻辑是:Jack向Rose转账500块。所以这里有两条sql:update money set balance=500 where u原创 2020-06-28 19:58:09 · 602 阅读 · 0 评论 -
explain的type
type指的是访问类型,可以衡量sql的好坏。The type column of EXPLAIN output describes how tables are joined常见的type有system,const,eq_ref,ref,range,index,all。显示sql是从最好到最坏。systemThe table has only one row (= system table). This is a special case of the const join type.原创 2020-05-20 12:54:51 · 902 阅读 · 0 评论 -
explain的select_type
分析sql的时候,我们会用explain。explain的字段:第一个字段是id。id越大越先执行,id相同从上至下执行。我们主要讲讲select_type。我们加上一张location表,并且在tbl_dept中添加location_id字段:首先是简单查询:直接select * from的select_type就是SIMPLE。然后是子查询和主要查询:tbl_emp和location都是SUBQUERY。而tbl_dept却是PRIMARY。它的意思是它是主要查询,就是最外原创 2020-05-20 06:56:13 · 1576 阅读 · 0 评论 -
表与表之间的连接
其实,表A与表B的连接和高中时候学的集合是一样的。要让两个表能够连接,必须有字段是一样的,或者说,是通过这个字段联系这两张表的。比如表A是员工表,员工表里有一个字段为dept_id。表B是部门表,部门表的主键id就可以和dept_id联系起来。用Venn图很容易表示表与表连接的几种情况:(经常有人问:表与表有哪几种连接?)...原创 2020-05-19 18:52:19 · 2679 阅读 · 0 评论