Python 如何在mysql.connector中使用多个游标?

Python 如何在mysql.connector中使用多个游标?,python,mysql,multithreading,mysql-connector-python,Python,Mysql,Multithreading,Mysql Connector Python,我希望执行多个查询,而不互相阻塞。我创建了多个游标并执行了以下操作,但得到了mysql.connector.errors.OperationalError:2013 HY000:在查询过程中与mysql服务器失去了连接 但我犯了那个错误。阅读其他一些问题,一些人建议使用多个连接比使用多个游标要好。那么,我应该使用多个连接吗?我没有您的情况的完整背景来理解性能考虑因素。是的,如果您在严格的时间限制下运行,而这些时间限制相对于启动新连接所需的时间很短,并且您在每次查询中都被迫这样做,那么启动新连接可

我希望执行多个查询,而不互相阻塞。我创建了多个游标并执行了以下操作,但得到了mysql.connector.errors.OperationalError:2013 HY000:在查询过程中与mysql服务器失去了连接


但我犯了那个错误。阅读其他一些问题,一些人建议使用多个连接比使用多个游标要好。那么,我应该使用多个连接吗?

我没有您的情况的完整背景来理解性能考虑因素。是的,如果您在严格的时间限制下运行,而这些时间限制相对于启动新连接所需的时间很短,并且您在每次查询中都被迫这样做,那么启动新连接可能会被视为很重

但是,您可以通过提前创建的共享连接来缓解这一问题,然后在资源允许的情况下,在这些连接上的单独线程中分发查询


另一方面,如果与创建新连接所需的时间相比,所有查询时间都相当长,并且您不希望并行运行多个查询,那么按需创建连接是一个合理的选择。请注意,如果您试图走得太远,您将遇到打开连接数量的限制,以及数据库系统本身的资源限制。您可能不想对共享数据库执行类似的操作。同样,在某些非常特定的上下文中,这只是一个合理的选择。

尝试在线程中创建游标。有什么特殊原因不能使用多个连接吗?这可能不可能与游标。无论如何,它不是用MySQLdb实现的,请参见。我会试试的,谢谢。@totalhack我认为与游标相比,建立多个连接会很沉重……因为引入了池的概念而被接受。投了太多的票^^^显然社区不喜欢你的问题。或者我的答案。具有讽刺意味的是,他们的反馈(或缺乏反馈)更糟糕。我唯一的猜测是,他们认为,通过更多的研究,你或许可以自己找到其他答案。我不一定不同意这一点,但我认为最好能有所帮助。好吧。。。我希望他们能为反对票提供意见,这样会更好
import mysql.connector as mc
from threading import Thread

conn = mc.connect(#...username, password)
cur1 = conn.cursor()
cur2 = conn.cursor()

e1 = Thread(target=cur1.execute, args=("do sleep(30)",)) # A 'time taking' task
e2 = Thread(target=cur2.execute, args=("show databases",)) # A simple task

e1.start()
e2.start()