2012-02-01 3 views
2

Не мог бы кто-нибудь объяснить мне концепцию, лежащую в основе курсора MySQL, особенно в контексте многопроцессорности?Понятия за курсором MySQL

Я довольно новичок в python и одновременно обращаюсь к MySQLdb с использованием модуля с тем же именем. Все мои процессы имеют собственные подключения и собственные курсоры, потому что в противном случае я выполняю исключения. Однако я использую курсоры для нескольких запросов.

Каков правильный шаблон для доступа к MySQL одновременно? Есть ли более приятные (то есть более высокий уровень абстракции) для использования, чем MySQLdb? Что такое концептуальное различие между соединением и курсором?

+0

Возможный дубликат http://stackoverflow.com/questions/454337/how-do-cursors-work-in-pythons-db-api –

+0

См. [PEP 249 - API базы данных Python] (http: // www .python.org/dev/peps/pep-0249 /) для описания понятий соединения и курсора. –

ответ

1

Каков правильный шаблон для доступа к MySQL одновременно?

Каждый поток/процесс должен управлять своим собственным подключением к базе данных.

Есть ли более приятные (то есть более высокие уровни абстракции) модули, чем MySQLdb?

Возможно, вы захотите зарегистрироваться SQLAlchemy.

Какова концептуальная разница между соединением и курсором?

Соединение представляет собой подключение вашей программы (d'oh!) К программному обеспечению базы данных. Концепция подключения предоставляет средства для обработки транзакций (фиксация и откат) и создания курсоров. В частности, соединение не обязательно должно предоставлять средства для непосредственного выполнения SQL.

Курсор необходим для выполнения SQL с использованием соединения и для извлечения/перемещения результатов.

Для получения более подробной информации см. PEP 249.