我总是听到人们说使用游标不好,尤其是在Microsoft SQL Server中,因为游标非常慢。MySQL上的游标也是这样吗?MySQL中的游标是否也会降低性能?有没有人能建议一下MySQL中游标的用法?
发布于 2011-08-09 23:27:01
大多数现代数据库(包括MySQL)都被设计为执行基于集合的操作。游标的问题在于它们执行基于行(或过程)的操作。正因为如此,当您使用游标执行在现代DBMS上无需游标即可完成的工作时,您几乎总是会看到性能下降。
看看this article,它在这两个方面做得很好。它在编写时考虑到了SQL Server,但大多数概念都适用。
发布于 2014-01-11 01:39:39
只需创建并填充一个临时表。这就是大多数RDBMS实现游标的方式。
发布于 2011-08-09 23:27:41
游标本质上是迭代的--不管是哪种类型的数据库,游标都肯定会变慢。因此,您应该尽一切努力避免它们,并尝试使用SQL查询来找到解决方案。然而,它们是为那些不能通过查询解决的问题而存在的-所以只有在绝对必要的时候才使用它们。
https://stackoverflow.com/questions/6998585
复制相似问题