Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql存储过程并行处理_Mysql_Stored Procedures_Parallel Processing - Fatal编程技术网

Mysql存储过程并行处理

Mysql存储过程并行处理,mysql,stored-procedures,parallel-processing,Mysql,Stored Procedures,Parallel Processing,我们可以并行调用存储过程来提高执行速度吗。例如:我有三个存储过程从三个主表中提取数据并将其加载/插入到单个源表中。目前我有三个过程: CALL sp_1(); CALL sp_2(); CALL sp_3(); 并以顺序方式运行它以插入需要更多时间的记录。有没有办法以并行方式运行所有这些过程以提高执行时间和进程速度……请帮助我解决这一问题。Q:我们能否以并行方式调用存储过程以提高执行速度 A:简短的回答是否定的。MySQL中没有内置机制使存储过程“并行”运行。为了实现并行处理,应用程序需要

我们可以并行调用存储过程来提高执行速度吗。例如:我有三个存储过程从三个主表中提取数据并将其加载/插入到单个源表中。目前我有三个过程:

CALL sp_1(); 
CALL sp_2(); 
CALL sp_3();

并以顺序方式运行它以插入需要更多时间的记录。有没有办法以并行方式运行所有这些过程以提高执行时间和进程速度……请帮助我解决这一问题。

Q:我们能否以并行方式调用存储过程以提高执行速度

A:简短的回答是否定的。MySQL中没有内置机制使存储过程“并行”运行。为了实现并行处理,应用程序需要设计成这样,利用到MySQL的多个连接,将处理拆分为可以并行运行的块,并协调这些进程

至于“提高执行速度”,您确实需要首先确定是什么导致了速度缓慢

如果问题是存储I/O,那么并行化进程可能不会提高执行速度

如果该过程使用游标,通过使行痛苦化(RBAR)来处理设置的行,并为每一行运行单独的INSERT语句,那么该过程必然非常缓慢。在这种情况下,您确实需要探索如何在大小合理的集合中处理行

也有可能该过程正在执行SQL语句,这些语句的编写方式会阻止MySQL有效利用可用索引。或者,适当的索引可能不可用


在启动并行化流程之前,了解实际瓶颈是什么很重要。“并行”运行进程不一定会提高执行速度。

创建多个事件以同时提交作业


唯一的问题是不能从存储过程创建事件。

不能单独调用它们吗?来自不同的客户端进程?感谢@justinmcaleer的回复,但我的问题是如何称呼它们不同clients@JustinMcAleerHow在同一个数据库中的mysql中打开一个连接,并在三个单独的连接中调用这三个过程???请帮助我@JustinMcAleer过去两天我一直在研究这个问题,但无法找到解决方案。请给我一些建议您目前如何连接mysql?非常感谢您的详细解释@spencer7593