我有一个申请 每小时大约20000个数据操作 DATA-OPERATION总共有30个参数(对于所有10个查询)。有些是文本,有些是数字。一些文本参数长达10000个字符。
每个数据操作都会执行以下操作:
现在执行此数据操作,
我个人认为,如果我从10个以上的查询创建一个存储过程,那将是更好的选择。
如果是SP,DATA-OPERATION将具有:
我建议了这个,但我被告知
我仍然认为SP是更好的选择。请让我知道您的意见。
基准测试是一种选择。将不得不搜索任何有助于此的工具。 也可以任何人建议已经有这种问题的基准。
答案 0 :(得分:4)
任何建议都部分取决于执行查询的脚本所在的位置。如果执行查询的脚本与MySQL实例位于同一服务器上,那么您将看不到那么大的差别,但与1个存储过程相比,执行200k查询仍然会有很小的开销。
我的建议是将其作为存储过程。您可能需要几个程序。
CURSOR
迭代参数表以进入过程1的过程您的流程将是
这将产生性能优势,因为无需连接MySQL服务器20000 * 10次。虽然每个请求的开销可能很小,但毫秒加起来。即使每个请求的保存时间为0.1毫秒,也可以节省20秒。
另一种选择可能是通过调整10个查询从上述数据库表中提取数据来修改您的请求,以便一次执行所有20k数据操作(如果可行)。所有这一切的关键是将参数加载到单个批量插入中,然后在过程中使用MySQL服务器上的语句来处理它们,而无需进一步往返。