0

我们用MYSQL写了存储过程

如果从一个线程调用存储过程,则需要 2.5 秒才能返回结果

如果从 3 个线程调用存储过程,则返回结果大约需要 8.5 秒。每个线程都花费几乎相同的时间。

我们正在使用 MyISM,如果我们需要对并行执行的过程进行任何设置,请告诉我。我们只在存储过程中检索(选择)没有更新/插入完成

4

1 回答 1

1

增加从 MySQL 中提取数据的线程数不一定会增加吞吐量。您在多个线程中执行相同的查询,这增加了上下文切换的开销。

要利用线程,您需要利用空闲时间(真正的空闲时间),例如输入/输出/网络延迟。例子:

  • 一个线程从 MySQL 中提取一些数据并开始处理,比如通过接口发送通知。如果该接口是同步的,则线程被卡住。
  • 让更多线程为您完成这项工作,即从 DB(Idle) 中提取数据并进行处理。

没有这种延迟/空闲线程只会产生 IMO 开销。

于 2013-02-14T07:34:53.833 回答