mysql锁及mysql存储引擎

InnoDB: 增、改的效率相对较高2.支持事务3.有支持行级锁和表锁4.自增列 没搞明白 5.表行数每次扫描全表计算


MyISAM:1.查询的效率更高,2.不支持事务功能3.只支持表锁4.自增列  没搞明白 5.表行数会保存一个表行数,但是如果出现where条件是两个一样


mysql 的MyISAM的锁机制:

分为读锁和写锁,在读锁和写锁之间,写速的优先级更加高,所以这也是MyISAM不适合用于多更新和插入的表,因为在默认的情况下MyISAM引擎认为写和更新的操作更加重要,会让读取等待,在过多写入的操作下读取可能出现无限等待的情况。

当使用LOCK TABLES时,不仅需要一次锁定用到的所有表,而且,同一个表在SQL语句中出现多少次,就要通过与SQL语句中相同的别名锁定多少次,否则也会出错!

读锁:当session1回话获取到了一张表的读锁的时候,session1这个只能读取获取到了锁的表,同时也不能进行写入操作,session2可以对session1获取到锁的表进行读取,也可以对其他的表进行读取,但是对锁在session1获得到锁的表的写入得等session2拿到session1释放的锁后才可以写入

写锁:当session1获取到a表的锁之后session2是不可以对a表进行读取的,得等到session1释放锁后才能读取操作

并发写入:可以设置一个属性,属性值有0,1,2三个属性0:不支持并发写入1:默认选项,在没有空洞(标的中间没有被删除的情况)的情况下支持线程a拿到锁之后,线程b可以在表的末尾进行插入操作,但是更新操作得等线程b拿到线程a释放的锁之后才能更新2:忽略空洞情况允许在表的末位插入操作,更新操作同1(使用2的时候应除以定时清除表中的空洞)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值