对于每个连接的客户端,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
mysql> select @@tx_isolation;
+----------------+
| @@tx_isolation |
+----------------+
| READ-COMMITTED |
+----------------+
1 row in set, 1 warning (0.00 sec)
mysql> set global tx_isolation = 1;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> select @@tx_isolation;
+----------------+
| @@tx_isolation |
+----------------+
| READ-COMMITTED |
+----------------+
1 row in set, 1 warning (0.00 sec)