按粒度划分:

    表级锁,页级锁,行级锁

    按使用方式:排他锁、共享锁

    按思想:悲观锁、乐观锁

    表锁的开销小,上锁快,并发度小,不会产生死锁,但是冲突较大

    其中MyISAM支持表锁,有共享表锁和排他写锁,当一个线程获取到MyISAM表的读锁的时候,会阻塞其他用户对该表的写操作,但是不会阻塞其它用户对该用户的读操作。
    相反的,当一个线程获取到MyISAM表的写锁的时候,就会阻塞其它用户的读写操作对其它的线程具有排它性。

    InnoDB中行锁在使用的方式上可以划分为:「共享读锁(S锁)「和」排它写锁(X锁)」

    当某一行被上S锁,那么当前线程只能对其进行读操作,其他线程只能对其上S锁,不能上X锁

    当某一行被上X锁,那么当前线程可以对其进行读写操作,其他线程S锁和X锁都没法上