Skip to content

Commit cd812f2

Browse files
committed
mysql锁机制
1 parent 9d8f001 commit cd812f2

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

My ISAM表锁/共享读锁

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,26 @@ MySQL这3种锁的特性可大致归纳如下。
1616
仅从锁的角度来说:表级锁更适合于以查询为主,只有少量按索引条件更新数据的应用,如Web应用;
1717
而行级锁则更适合于有大量按索引条件并发更新少量不同数据,同时又有并发查询的应用,如一些在线事务处理(OLTP)系统。
1818
从上述特点可见,很难笼统地说哪种锁更好,只能就具体应用的特点来说哪种锁更合适!
19+
20+
21+
22+
****************************************************************************************************
23+
MySQL的表级锁有两种模式:表共享读锁(Table Read Lock)和表独占写锁(Table Write Lock)。
24+
                          MySQL中的表锁兼容性   
25+
26+
给表加锁
27+
1.加共享读锁
28+
 lock table 表名 read
29+
2.表独占写锁
30+
lock table 表名 read
31+
32+
33+
说明:
34+
对MyISAM表的读操作,不会阻塞其他用户对同一表的读请求,但会阻塞对同一表的写请求;
35+
对 MyISAM表的写操作,则会阻塞其他用户对同一表的读和写操作;
36+
MyISAM表的读操作与写操作之间,以及写操作之间是串行的!当一个线程获得对一个表的写锁后,只有持有锁的线程可以对表进行更新操作。
37+
其他线程的读、写操作都会等待,直到锁被释放为止。
38+
一个session使用LOCK TABLE命令给表f加了读锁,这个session可以查询锁定表中的记录,但更新或访问其他表都会提示错误;
39+
同时,另外一个session可以查询表中的记录,但更新就会出现锁等待。
40+
 
1941

0 commit comments

Comments
 (0)