【问题标题】:Are mysql.connector SELECT queries run concurrently or sequentially?mysql.connector SELECT 查询是同时运行还是顺序运行?
【发布时间】:2019-02-20 18:26:24
【问题描述】:

我目前在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 查询都是在使用相同的帐户凭据进行身份验证后执行的。

【问题讨论】:

    标签: python mysql flask mysql-python mysql-connector-python


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-08
      • 1970-01-01
      相关资源
      最近更新 更多