【发布时间】:2014-05-15 12:24:32
【问题描述】:
一个 mysql 服务器可以处理多少个 GET_LOCKS - 整个服务器。我找不到任何关于它的限制的信息。
【问题讨论】:
一个 mysql 服务器可以处理多少个 GET_LOCKS - 整个服务器。我找不到任何关于它的限制的信息。
【问题讨论】:
根据 MySQL 文档 GET_LOCK(),每个连接不能持有多个锁。
正如它所说的
如果你有一个用 GET_LOCK() 获得的锁,它会在你被释放时被释放 执行 RELEASE_LOCK(),执行一个新的 GET_LOCK(),或者你的连接 终止(正常或异常)。
所以本质上,它取决于连接数。我会说等式会
No.of GET_LOCK handled = NO.Of Connections handled
我看到记录了一个错误,人们建议每个连接都有并发锁定。看这里http://bugs.mysql.com/bug.php?id=1118
【讨论】:
mysql> SELECT GET_LOCK('s',10);
+------------------+
| GET_LOCK('s',10) |
+------------------+
| 1 |
+------------------+
1 row in set (0.00 sec)
mysql> SELECT GET_LOCK('t',10);
+------------------+
| GET_LOCK('t',10) |
+------------------+
| 1 |
+------------------+
1 row in set (0.00 sec)
mysql> SELECT GET_LOCK('b',10);
+------------------+
| GET_LOCK('b',10) |
+------------------+
| 1 |
+------------------+
1 row in set (0.00 sec)
mysql> SELECT IS_FREE_LOCK('b');
+-------------------+
| IS_FREE_LOCK('b') |
+-------------------+
| 0 |
+-------------------+
1 row in set (0.00 sec)
mysql> SELECT IS_FREE_LOCK('t');
+-------------------+
| IS_FREE_LOCK('t') |
+-------------------+
| 1 |
+-------------------+
1 row in set (0.00 sec)
mysql> SELECT IS_FREE_LOCK('s');
+-------------------+
| IS_FREE_LOCK('s') |
+-------------------+
| 1 |
+-------------------+
1 row in set (0.00 sec)
【讨论】: