对于每个连接的客户端,MySQL服务器会创建一个独立的线程

概念

MySQL服务器和独立的存储引擎都可以设置锁,一般来说读写操作的锁不同。
读锁(共享锁)允许并发线程读取加锁的数据,但禁止写数据
写锁(排他锁)阻止其他线程的读写操作

操作

设置读锁:当用select语句从表中查询数据或者通过lock table….read语句显式加锁的时候
设置写锁:当修改表或者用lock table….write语句显示加锁的时候

事务的修改

https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_tx_isolation

  1. mysql> select @@tx_isolation;
  2. +----------------+
  3. | @@tx_isolation |
  4. +----------------+
  5. | READ-COMMITTED |
  6. +----------------+
  7. 1 row in set, 1 warning (0.00 sec)
  8. mysql> set global tx_isolation = 1;
  9. Query OK, 0 rows affected, 1 warning (0.00 sec)
  10. mysql> select @@tx_isolation;
  11. +----------------+
  12. | @@tx_isolation |
  13. +----------------+
  14. | READ-COMMITTED |
  15. +----------------+
  16. 1 row in set, 1 warning (0.00 sec)