优化包含700万数据的SQL查询:SELECT ds.sku_code FROM drug_inner_store

本文将探讨如何优化以下SQL查询,该查询涉及一个包含700万数据的表drug_inner_store

SELECT ds.sku_code
FROM `drug_inner_store` as ds
                     left join store as s on s.id = ds.store_id
                     left join drug as d on d.id=ds.drug_id
        where ds.stock = 0
          and s.state = true
          and d.state=true
				 group by ds.sku_code

为了优化以上SQL查询,你可以尝试以下几个方法:

  1. 添加索引:在drug_inner_storestoredrug表中的相关列上添加索引,以加快查询速度。在drug_inner_store表中添加索引的列可以是store_iddrug_id,在store表中添加索引的列可以是idstate,在drug表中添加索引的列可以是idstate

  2. 避免使用left join:如果不需要返回storedrug表中的其他列,可以使用inner join代替left join,这样可以减少连接操作和数据读取,提高查询性能。

  3. 使用子查询:将条件ds.stock = 0s.state = trued.state = true分别作为子查询,然后将子查询的结果与drug_inner_store表进行连接,可以提高查询效率。

下面是优化后的SQL查询:

SELECT ds.sku_code
FROM (
  SELECT *
  FROM drug_inner_store
  WHERE stock = 0
) as ds
JOIN store as s ON s.id = ds.store_id AND s.state = true
JOIN drug as d ON d.id = ds.drug_id AND d.state = true
GROUP BY ds.sku_code

请注意,具体的优化方法可能因数据库的类型和结构而有所不同。建议在进行更改之前,先在测试环境中进行测试和性能评估。

优化700万数据量的SQL查询:SELECT ds.sku_code FROM drug_inner_store

原文地址: https://www.cveoy.top/t/topic/pjWo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录