使MySQL存储过程的优先级较低/不锁定表

问题描述

我在MySQL中有一个存储过程,该存储过程在运行时会锁定表。这是一个相当繁重的过程,可能会持续一分钟,并且在此期间访问数据库的其他请求会导致死锁错误。如果不重写该过程,则有一种方法可以使该过程的优先级降低,或者此时不锁定该表,以使其他传入请求优先于该过程且不会被阻塞。我不想取消该过程,但希望它在后台继续。

在创建过程时,我可以看到一些类似的设置,但是找不到我需要的设置。这可能吗,怎么办?这些是设置:

/*!50003 SET sql_mode              = @saved_sql_mode */ ;
/*!50003 SET character_set_client  = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection  = @saved_col_connection */ ;
/*!50003 SET @saved_cs_client      = @@character_set_client */ ;
/*!50003 SET @saved_cs_results     = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client  = utf8 */ ;
/*!50003 SET character_set_results = utf8 */ ;
/*!50003 SET collation_connection  = utf8_general_ci */ ;
/*!50003 SET @saved_sql_mode       = @@sql_mode */ ;
/*!50003 SET sql_mode              = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION' */ ;

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)