mysql - 优化我对两个非常大的表的查询

标签 mysql performance optimization query-optimization

我有 2 个表第一个表名称 cjfeeds 另一个名称是 linkshare 我的 2 个表包含多达 4000 万条记录。所以我的选择查询需要 12 到 15 分钟来获取我的单条记录。

这是我现在的查询:

SELECT SUM(SPRICE) AS Tot, MIN(SMIN) AS Min 
FROM 
   (SELECT COUNT(LS.SALEPRICE) AS SPRICE, MIN(LS.SALEPRICE) AS SMIN 
    FROM `linkshare` LS 
    WHERE LS.`PRODUCTNAME` LIKE 'DVS Men\'s Comanche Skate Shoe%' 
    UNION 
    SELECT COUNT(CJ.PRICE) AS SPRICE, MIN(CJ.PRICE) AS SMIN 
    FROM `cjfeeds` CJ 
    WHERE CJ.NAME LIKE 'DVS Men\'s Comanche Skate Shoe%' ) 
   AS xyz

我的问题: 我正在为价格字段创建索引键。我该如何使用这个查询?

还有我如何优化我的查询性能?

下面给出了我的解释查询

And here's how an explain looks:

请指教

最佳答案

首先,没有使用索引。在 LS.PRODUCTNAME 和 CJ.NAME 上建立索引。

还怀疑您想要一个 UNION ALL,并且可能需要 COUNT(*) 而不是 COUNT(fieldname)。

价格指数不太可能有帮助。

从长远来看,将产品名称拆分到不同的表中可能会更好,表中的行引用产品表的 ID。

关于mysql - 优化我对两个非常大的表的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15969782/

相关文章:

php - MySQL 记录排序

python pandas read_csv 花费很长时间

c++ - OpenGL - 采摘(最快的方式)

jquery - 使用 jQuery 快速搜索大列表

c++ - 在我看来,我发现了一个比 std :max 运行得更快的函数

mysql - 在mysql和vb.net上插入数据

mysql - SQL查询的性能指标计算

python - 列值到行值的 Numpy 转换

java - 遗传算法的并行化显着减慢了算法速度。为什么会这样呢?

php - 初始网站加载速度较慢,后续加载速度较快