MySQL 游标背后的概念
有人可以向我解释一下 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
每个线程/进程都应该管理自己与数据库的连接。
您可能想查看 SQLAlchemy。
连接代表您的程序与数据库软件的连接(天啊!)。连接概念仅提供处理事务(提交和回滚)和创建游标的方法。特别是,连接不需要提供直接执行 SQL 的方法。
需要使用游标来使用连接执行 SQL 并检索/遍历结果。
有关详细信息,请参阅 PEP 249。
Every thread/process should manage its own connection to the database.
You might want to check out SQLAlchemy.
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.