PHP / MYSQL查询执行时间优化

时间:2016-08-25 15:24:38

标签: php mysql

我对这组查询遇到了很大的困难。我找不到加速第二个查询的方法。我尝试将第一个查询作为第二个查询的子查询加入,逐个运行第一个查询结果和当前设置,所有这些都证明非常慢。

我想简单地为第二个查询添加一个限制而不是这个hocky的东西,但我们的mysql版本太旧了不支持它。由于某种原因,它也将EXPLAIN视为语法错误,这是无益的。

如何减少执行时间?

$limitQuery = $pdo->prepare("
            SELECT r.supplier_option_code FROM third_party_raw_stock_price AS r ORDER BY r.id LIMIT 100
        ");
        $limitQuery->execute();
        $limitIds = $limitQuery->fetchAll();
        $limitIds = implode("', '",array_column($limitIds, 'supplier_option_code'));
        $limitQuery = null;
        $linkColumn = 'supplier_code';
        $thirdPartyId = 'FS';


        $migrateQuery = $pdo->prepare("
            UPDATE third_party_raw_stock_price AS r
  JOIN options_new AS o
    ON o.".$linkColumn." = r.supplier_option_code AND r.supplier_prefix = '".$thirdPartyId."'
  JOIN third_party_config AS t
    ON t.code = '".$thirdPartyId.""'
SET o.price = '989.99', o.cost_price_variation = '3.33', o.stock = '7'
WHERE r.supplier_option_code IN ('$limitIds')
        ");
    $migrateQuery->execute([':config' => $thirdPartyId]);

0 个答案:

没有答案