1

我有 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

我的问题:我正在为价格字段创建索引键。我怎样才能使用这个查询?

另外如何优化我的查询性能?

我的解释查询如下

这是一个解释的样子:

请指教

4

1 回答 1

2

首先,没有使用索引。在 LS.PRODUCTNAME 和 CJ.NAME 上放置一个索引。

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

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

从长远来看,将产品名称拆分到另一个表中可能会更好,您在那里的表上的行指的是产品表的 id。

于 2013-04-12T11:19:52.880 回答