Mysql Get_Lock和Release_Lock函数需要很长时间

时间:2019-05-16 19:17:36

标签: java mysql database innodb

我们正在尝试在我们的Spring Java应用程序中使用MYSQL的锁定函数Get_Lock和Release_Lock。我们正在使用的代码是在一个过程中分别定义的,它们都简单地从我们的java代码中调用。proc中的查询如下。

我们一直在监视这些函数的执行时间,发现有时执行需要一毫秒,而在其他时候,则需要大约400到600 ms。我尝试了以下方法,但没有太大区别: 1.使用“ Do”代替这些功能的选择。 2.使用密钥的int数据类型,我们将其用作锁定字符串。 3.减少锁定字符串的长度。

我正在使用0超时以避免连接被锁定。

有人可以建议我一种优化此方法的方法吗?有没有一种优化innodb缓冲池或与这些配置相关的方法的方法。 请让我知道我是否还需要其他输入。

请在下面找到一些proc代码和统计信息,以供参考。

当前的Mysql代码:

过程:

  

获取名称锁定:

-使用选择

Select get_lock(Name,0) into c_Name_flag;

-使用

Do get_lock(Name,0) ;

过程:

  

release_Name_lock:

-使用选择

Select release_lock(Name) into c_Name_flag;

-使用

Do release_lock(Name);

请求速率:(大约)10个请求/秒。 Mysql版本:5.7.19-log

0 个答案:

没有答案