我有2个表第1个表名cjfeeds另一个名字是linkshare我的2个表包含多达40万个记录。所以我的选择查询需要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
我的问题: 我是为价格字段创建索引键。我该如何使用此查询?
另外,我如何优化查询性能?
我的解释查询如下:
请告知
答案 0 :(得分:2)
首先,没有使用索引。在LS.PRODUCTNAME和CJ.NAME上添加索引。
还怀疑你想要一个UNION ALL,可能是COUNT(*)而不是COUNT(fieldname)。
价格指数不太可能有所帮助。
从长远来看,将产品名称拆分为不同的表可能会更好,表中的行指的是产品表的ID。