Mysql:锁

Lock

  • 一、共享锁(读锁、S锁)和排它锁(写锁、X锁)
  • 二、表级锁和行级锁
    • (一)、索引与锁
    • (二)、表锁分类
    • (三)、行锁分类
  • 三、Mysql中如何解决死锁?

一、共享锁(读锁、S锁)和排它锁(写锁、X锁)

  • 共享锁:多个事务可以同时获取该锁,但是只能读取数据,不能修改
  • 排它锁:只有一个事务可以获取该锁,可以读取和修改数据

Mysql读可以分为两类:
快照读(不加锁):

  • MVCC为了保证并发的效率,在进行读取数据的时候是不加锁的,在执行select的时候(不带锁的普通select),会先读取当前数据的版本号,如果在select还没返回结果时,有事务将此行数据进行了修改,那么版本号就会比执行select的时候的大,所以为了保证select读取数据的一致性,就只会读取小于或等于当前版本的数据,这个历史版本的数据就是从undolog中获取到的
#正常select语句
select .

你可能感兴趣的:(数据库开发,mysql,数据库)