Концепции позади курсора MySQL - PullRequest
2 голосов
/ 01 февраля 2012

Может ли кто-нибудь объяснить мне концепцию движка MySQL, особенно в контексте многопроцессорной обработки?

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

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

1 Ответ

1 голос
/ 01 февраля 2012

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

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

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

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

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

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

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

Подробнее см. PEP 249 .

...