mysql锁机制

来源:互联网 发布:波司登淘宝旗舰店 编辑:程序博客网 时间:2024/06/07 17:56

锁是计算机协调多个进程或者线程并发访问某一资源的机制。

在数据库中,除了传统的计算资源的争用以外,数据也是一种供许多用户共享的资源,如何保证数据并发访问的一致性,有效性是所有数据库必须解决的问题,锁冲突也是影响数据库并发访问性能的一个重要因素。

案例:

京东买手机,库存只有1件的情况下,怎么解决是你买到还是另外一个人买到的问题?

1.这里肯定用到事务了,我们先从库存表中取出商品的库存,然后插入订单,付款后插入付款记录表,然后更新商品的库存量。在这个过程中,使用锁可以对有限的资源进行保护,解决隔离和并发的矛盾。

锁的分类:

1从对数据操纵的类型有读写锁

1.1读锁:(共享锁)针对同一份数据,多个读操纵可以同时进行而不会互相影响

1.2:写锁(排他锁)当前写操纵没完成前,它会阻断其他写锁和读锁。

2.从对数据操纵的粒度分

2.1表锁(偏读)发生锁冲突概率最高,并发度最低!



简而言之。就是读锁会阻塞写,但是不会阻塞读,写锁会把读和写都阻塞。

2.2行锁(偏写):

行锁偏向于innodb引擎的,开销大,加锁慢,粒度小,发生锁冲突的概率小,并发度高。

innodb支持了行锁和事务,myisim不支持。



0 0
原创粉丝点击