5

我一直听到人们对使用游标说不好,尤其是在 Microsoft SQL Server 中,因为它们非常慢。

MySQL 上的 Cursors 也是这种情况吗?MySQL 中的游标是否也会降低性能?有人可以就 MySQL 中游标的使用提出建议吗?

4

3 回答 3

8

大多数现代数据库(包括 MySQL)旨在执行基于集合的操作。游标的问题在于它们执行基于行(或过程)的操作。因此,当您在现代 DBMS 上使用游标执行一项无需游标即可完成的工作时,您几乎总是会看到性能下降。

看看这篇文章,它在这两者上做得不错。它是在考虑 SQL Server 的情况下编写的,但大多数概念都适用。

于 2011-08-09T15:27:01.173 回答
2

只需创建并填写一个临时表。这就是大多数 RDBMS 实现游标的方式。

于 2014-01-10T17:39:39.247 回答
-2

游标本质上是迭代的 - 无论任何数据库类型,它们肯定会变慢。因此,您应该尽一切努力避免它们并尝试使用 SQL 查询找到解决方案。然而,它们存在于无法通过查询解决的问题 - 所以只有在绝对必要时才使用它们。

于 2011-08-09T15:27:40.753 回答