锁是计算机协调多个进程或者线程并发访问同一个资源时的限制机制,进程和线程对同一个资源的并发访问都有着限制机制,那么MySQL数据库对于数据被多个用户同时共享的情况下,为了保证数据的一致性,从而有了锁的概念。
在数据库中,除了传统的计算资源(CPU、RAM、I/O)的争用之外,表中的数据也是被多用户并发共享的资源,只要是并发共享访问的资源都会有一定的限制,在多用户并发访问同一个数据时,为了保证数据的一致性、有效性,就需要用到锁的概念。
锁对于数据库而言是非常重要的,也是非常复杂的。
当多用户同时访问同一条数据时,可以通过锁,来限制只有第一个事务能对表数据进行操作,其余的事务要等待排队处理。
在MySQL数据库中,根据面向对象的不同,分为以下三类锁: