Курсоры на MySQL - хорошо или плохо - PullRequest
6 голосов
/ 09 августа 2011

Я всегда слышал, как люди плохо говорят об использовании курсоров, особенно в Microsoft SQL Server, поскольку они очень медленные.Так ли это с курсорами на MySQL?Уменьшают ли курсоры в MySQL также и производительность?Может кто-нибудь пожалуйста посоветовать использование курсоров в MySQL?

Ответы [ 3 ]

7 голосов
/ 09 августа 2011

Большинство современных баз данных (включая MySQL) предназначены для выполнения операций на основе множеств. Проблема с курсорами заключается в том, что они выполняют строковые (или процедурные) операции. Из-за этого вы почти всегда будете видеть снижение производительности при использовании курсоров для выполнения работы, которая может быть выполнена без курсоров в современной СУБД.

Взгляните на эту статью , которая неплохо справляется с этими двумя. Он написан с учетом SQL Server, но большинство концепций применимы.

1 голос
/ 10 января 2014

Просто создайте и заполните временную таблицу.Так все же большинство СУБД внедряют курсоры.

0 голосов
/ 09 августа 2011

Курсоры по своей природе являются итеративными - они определенно будут работать медленнее независимо от типа базы данных. Поэтому вам следует делать все возможное, чтобы избежать их, и попытаться найти решения с использованием запросов SQL. Однако они существуют для проблем, которые не могут быть решены с помощью запросов, поэтому используйте их только в случае крайней необходимости.

...