当前位置: 代码迷 >> python >> mysql.connector SELECT查询是同时运行还是顺序运行?
  详细解决方案

mysql.connector SELECT查询是同时运行还是顺序运行?

热度:72   发布时间:2023-06-19 09:08:08.0

我当前在python Flask项目中使用mysql.connector ,在用户输入信息后,将执行以下查询:

"SELECT first, last, email, {} FROM {} WHERE {} <= {} AND ispaired IS NULL".format(key, db, class_data[key], key)

如果此查询同时在2个线程中执行,并且在两个线程中返回相同的行,则会造成问题。 我想知道是否有一种方法可以阻止SELECT mysql查询并发执行,或者这是否已经是mysql.connector的默认行为? 有关更多信息,所有mysql.connector查询都将在使用相同的帐户凭据进行身份验证之后执行。

从您的描述很难说,但是如果您使用Flask,则很可能正在使用(或将在生产中使用)多个进程,并且每个进程中可能都有一个连接池(即多个连接)。 因此,当每个连接顺序执行查询时,可以同时由多个连接同时运行此查询。

为了防止您的应用程序在处理不同的请求时同时获取同一行,应使用事务和技术,例如SELECT FOR UPDATE 确切的解决方案取决于您的确切用例。

  相关解决方案