数据库锁

数据库锁的概念

锁是计算机协调多个进程或线程并发访问某一资源的机制。
在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用之外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。

锁的分类

  1. 从数据操作的类型分:读锁和写锁;
    读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响;
    写锁(排他锁):当前写操作没有完成前,他会阻断其他写锁和读锁;
    从对数据操作的粒度分:表锁和行锁
    表锁:锁住一整张表,开销最小的锁策略,开销小,性能快,但是高并发下性能低;MYISAM使用表锁
    行锁:锁住表的一行,开销最大的锁策略,开销大,锁表慢,但高并发下性能更高;InnoDB使用行锁。InnoDB的行锁是针对索引加的锁,不是针对记录加的锁。并且该索引不能失效,否则都会从行锁升级为表锁。

你可能感兴趣的:(数据库)