我有一个应用程序,每小时执行约20000次DATA-OPERATIONS DATA-
OPERATION总共具有30个参数(用于所有10个查询)。有些是文本,有些是数字。某些Text参数最长为10000个字符。
每个DATA-OPERATION都执行以下操作:
现在执行此数据操作
我个人认为,如果我通过以上10个查询创建存储过程,那将是更好的选择。
如果是SP,则DATA-OPERATION将具有:
我建议了这个,但被告知
我仍然认为SP是更好的选择。请让我知道您的输入。
基准测试是一种选择。将不得不搜索任何可以帮助实现这一目标的工具。也可以有人针对这种问题建议已经可用的基准。
任何建议都部分取决于执行查询的脚本所在的位置。如果执行查询的脚本与MySQL实例位于同一服务器上,则不会有太大的区别,但是与1个存储过程相比,执行200k查询的开销仍然很小。
无论哪种方式,我的建议都是将其作为存储过程。您可能需要几个过程。
CURSOR
其馈入过程1您的过程将是
由于不需要连接到MySQL服务器20000 * 10次,因此这将带来性能优势。尽管每个请求的开销可能很小,但毫秒数加起来。即使每个请求节省了0.1毫秒,也仍然节省了20秒。
另一个选择是修改您的请求以一次执行所有20k数据操作(如果可行),方法是调整您的10个查询以从上述数据库表中提取数据。所有这些的关键是将参数加载到单个批处理插入中,然后在过程中使用MySQL服务器上的语句来处理它们,而无需进一步往返。
问题内容: 存储过程的执行情况如何?是否值得使用它们而不是在PHP / MySQL调用中实现复杂的查询? 问题答案: 存储过程将为您带来一点性能提升,但是大多数情况下,它们是用于执行用简单查询很难或不可能完成的任务。存储过程非常适合简化许多不同类型的客户端对数据的访问。数据库管理员之所以喜欢它们,是因为他们控制数据库的使用方式,而不是将这些细节留给开发人员。 寻找索引和适当的表设计以获得更好的性能
问题内容: JOIN查询比几个查询快吗?(您运行主查询,然后根据主查询的结果运行许多其他的SELECT) 我问是因为加入它们会使我的应用程序设计复杂化 如果速度更快,谁能大致估算出多少?如果是1.5倍,我不在乎,但是如果是10倍,我想我是。 问题答案: 这太模糊了,无法为您提供与您的具体情况相关的答案。这取决于很多事情。Jeff Atwood(该网站的创始人)实际上撰写了有关此内容的文章。但是,在
我想设计一个动态存储过程,在其中我将传递列名、表名和where子句。以便使用存储过程在具有不同参数的不同表上运行select。 我不确定这是否可能。如果是,任何人都可以帮助我的例子。 例如。
问题内容: 如何在同一例程中使用两个游标?如果我删除了第二个游标声明并获取了循环,一切都将正常工作。该例程用于在我的webapp中添加朋友。它使用当前用户的ID和我们要添加的朋友的电子邮件作为朋友,然后检查电子邮件是否具有相应的用户ID,如果不存在朋友关系,它将创建一个。除此以外的任何其他常规解决方案也都很好。 问题答案: 我终于写了一个执行相同功能的不同函数: 我希望这是一个更好的解决方案,无论
有没有特别好的方法可以做到这一点?我使用Panache/Hibernate ORM扩展PanacheEntity来为新表的模式创建映射。使用Repository方法,所有工作都按预期进行,并且我有反映GET、PUTs等的正确endpoint。我当前的问题是,我试图使用一个完全不同的endpoint,它只在Postgresql函数/存储过程上执行GET,并在访问该endpoint时返回数据。这是终点
在我的AppMapper.xml中,我有一个查询,如: 假设它将返回姓名,地址,年龄,职业,这些都是字符串。我用这个对吗? *我正在询问是使用resultType=String还是使用resultMap“PersonProfileObj” 我的理解正确吗?