MySQL 游标背后的概念

发布于 2025-01-01 04:06:30 字数 220 浏览 1 评论 0原文

有人可以向我解释一下 MySQL 游标背后的概念吗,特别是在多处理的背景下?

我对 python 相当陌生,并且正在使用同名模块同时访问 MySQLdb。我的所有进程都有自己的连接和自己的游标,因为否则我会遇到异常。不过,我对多个请求重复使用游标。

并发访问 MySQL 的正确模式是什么? 是否有比 MySQLdb 更好(即更高抽象级别)的模块可供使用? 那么连接和游标在概念上有什么区别呢?

Could someone please explain me the concept behind MySQL cursor, especially in the context of multiprocessing?

I am fairly new to python and am accessing a MySQLdb concurrently using a module with the same name. All my processes have own connections and own cursors, because i run into exceptions otherwise. I reuse cursors for multiple requests though.

What is the right pattern to access a MySQL concurrently?
Are there nicer (i.e. higher abstraction level) modules to use than MySQLdb?
What is the conceptual difference between a connection and a cursor then?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人生百味 2025-01-08 04:06:30

并发访问 MySQL 的正确模式是什么?

每个线程/进程都应该管理自己与数据库的连接。

是否有比 MySQLdb 更好(即更高抽象级别)的模块可供使用?

您可能想查看 SQLAlchemy

那么连接和游标之间的概念区别是什么?

连接代表您的程序与数据库软件的连接(天啊!)。连接概念仅提供处理事务(提交和回滚)和创建游标的方法。特别是,连接不需要提供直接执行 SQL 的方法。

需要使用游标来使用连接执行 SQL 并检索/遍历结果。

有关详细信息,请参阅 PEP 249

What is the right pattern to access a MySQL concurrently?

Every thread/process should manage its own connection to the database.

Are there nicer (i.e. higher abstraction level) modules to use than MySQLdb?

You might want to check out SQLAlchemy.

What is the conceptual difference between a connection and a cursor then?

A connection represents your program's connection (d'oh!) to the database software. The connection concept only provides means to handle transactions (commit and rollback) and to create cursors. In particular, a connection does not need to provide means to execute SQL directly.

A cursor is needed to execute SQL using a connection and to retrieve/traverse the results.

See PEP 249 for details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文