在团队开发一个项目的时候,避免不了两个或两个以上的人同时操作某一数据库中的同一张表,这时候,如果一个用户没有提交事务,或者忘记提交事务,那么其他用户就不能对这张表进行操作了,这是很烦人的事情,下面是查询是哪个用户将表锁住了,并且生成解表语句的sql: Select O.OWNER, O.OBJECT ...
分类:
数据库 时间:
2019-09-04 18:49:17
阅读次数:
116
前言 我的数据库版本是5.7.23,最近发现执行SQL越来越慢,一条SQL语句执行需要将近30s。 对于原因,查询资料, https://www.cnblogs.com/qwangxiao/p/8921196.html一文中写道: 导致SQL执行慢的原因: 1. 硬件问题。如网络速度慢,内存不足,I ...
分类:
数据库 时间:
2019-09-02 14:18:24
阅读次数:
143
InnoDB是基于事务,用来锁定的对象是数据库中的对象,如表、页、行。一般锁仅在事务commit或rollback后进行释放(不同事务隔离级别释放的时间可能不同)可以通过innodb_trx,innodb_locks, innodb_lock_waits来观察锁的信息表锁:操作对象是数据表。Mysq... ...
分类:
数据库 时间:
2019-08-28 11:16:15
阅读次数:
83
本文主要记录InnoDB存储引擎中锁的关键点,下篇文章通过实例确认加锁的范围。 InnoDB中的锁 1. 锁提供数据完整性和一致性 2. InnoDB行级锁:共享锁(S)和排他锁(X)。 为了支持多粒度锁定,InnoDB支持意向锁,该锁允许事务在行锁和表锁同时存在。包括意向共享锁(IS)和意向排他锁 ...
分类:
数据库 时间:
2019-08-24 18:37:51
阅读次数:
137
悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操 ...
分类:
其他好文 时间:
2019-08-11 17:22:13
阅读次数:
104
悲观锁: 悲观锁悲观的认为每一次操作都会造成更新丢失问题,在每次查询时加上排他锁 每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 ...
分类:
其他好文 时间:
2019-08-10 10:13:21
阅读次数:
99
引言 大家在面试中有没遇到面试官问你下面六句Sql的区别呢 如果你能清楚的说出,这六句sql在不同的事务隔离级别下,是否加锁,加的是共享锁还是排他锁,是否存在间隙锁,那这篇文章就没有看的意义了。之所以写这篇文章是因为目前为止网上这方面的文章太片面,都只说了一半,且大多没指明隔离级别,以及where后 ...
分类:
数据库 时间:
2019-08-08 11:38:48
阅读次数:
136
聚集和非聚集索引 简单概括: 聚集索引就是以主键创建的索引 非聚集索引就是以非主键创建的索引 区别: 聚集索引在叶子节点存储的是表中的数据 非聚集索引在叶子节点存储的是主键和索引列 使用非聚集索引查询出数据时,拿到叶子上的主键再去查到想要查找的数据。(拿到主键再查找这个过程叫做回表) 非聚集索引也叫 ...
分类:
其他好文 时间:
2019-07-21 18:28:08
阅读次数:
103
一、锁的分类 对数据操作的类型:读锁(共享锁)、写锁(排它锁) 对数据操作对粒度:表锁、行锁 二、表锁(偏读) 特点:偏向MyISAM存储引擎,开销小,加锁快,无死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低。 MyISAM在执行查询语句前,会自动给涉及的所有表加读锁,在执行增删改操作前,会自动 ...
分类:
数据库 时间:
2019-07-21 12:03:27
阅读次数:
137
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 (1) 在操 ...
分类:
其他好文 时间:
2019-07-16 08:43:13
阅读次数:
95