mysql.connector select查询是并行运行还是顺序运行?

rqqzpn5f  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(387)

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

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

如果此查询在两个线程中同时执行,并在两个线程中返回同一行,则会产生问题。我想知道有没有办法防止 SELECT mysql查询无法并发执行,或者这已经是 mysql.connector ? 更多信息,请参见 mysql.connector 查询在使用相同的帐户凭据进行身份验证后执行。

hsgswve4

hsgswve41#

从您的描述很难说,但是如果您使用的是flask,那么您很可能正在使用(或将在生产中使用)多个进程,并且您可能在每个进程中都有一个连接池(即多个连接)。因此,当每个连接按顺序执行查询时,该查询可以由多个连接同时运行。
为了防止应用程序在处理不同请求时同时获取同一行,应该使用事务和技术,如 SELECT FOR UPDATE . 确切的解决方案取决于您的确切用例。

相关问题