我有 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
我的问题: 我正在为价格字段创建索引键。我该如何使用这个查询?
还有我如何优化我的查询性能?
下面给出了我的解释查询
请指教
最佳答案
首先,没有使用索引。在 LS.PRODUCTNAME 和 CJ.NAME 上建立索引。
还怀疑您想要一个 UNION ALL,并且可能需要 COUNT(*) 而不是 COUNT(fieldname)。
价格指数不太可能有帮助。
从长远来看,将产品名称拆分到不同的表中可能会更好,表中的行引用产品表的 ID。
关于mysql - 优化我对两个非常大的表的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15969782/