【发布时间】:2013-03-21 00:32:58
【问题描述】:
我目前正在将数据馈送上传到我的数据库中。由于存在超过 1 千万条记录,我的数据库中被转储了。我需要改进或提高我网站中的 MYSQL 查询性能。下面是我执行的查询....
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
在上述查询中,它在本地数据库中完美运行,我的数据库包含不到 5 万条记录...如何改进我在实时服务器中的查询?请指导我.....
我的查询也花了 39.4626 秒。如何减少此查询的运行时间?
【问题讨论】:
-
你需要标准化你的数据库。
-
Pick something other than Fisher Price My First SQL Server?如果您想要一个严肃的评论:您的
LIKE带有通配符匹配以及字符串的开头和结尾可能会对您的查询造成最大的伤害。 -
请注意,您应该在查询中使用
UNION ALL而不是UNION(默认为UNION DISTINCT)。
标签: php mysql sql phpmyadmin mysqldump