我在尝试优化下面列出的SQL查询。
它基本上是一个基于产品名称检索产品的搜索引擎代码。它还检查产品型号以及是否启用。
这执行约1.6秒的时候我直接通过phpMyAdmin的工具运行它,但需要大约3秒,总在与它被放置在PHP文件一起加载。SQL查询花费的时间太长
我需要添加一个类别搜索功能和现在,这是崩溃的MySQL服务器,帮助!
贾斯汀
SELECT DISTINCT
p.products_id,
p.products_image,
p.products_price,
s.specials_new_products_price,
p.products_weight,
p.products_unit_quantity,
pd.products_name,
pd.products_img_alt,
pd.products_affiliate_url
FROM
products AS p
LEFT JOIN
vendors v
ON
v.vendors_id = p.vendors_id
LEFT JOIN
specials AS s
ON
s.products_id = p.products_id
AND
s.status = 1,
categories AS c,
products_description AS pd,
products_to_categories AS p2c
WHERE
(
(
pd.products_name LIKE '%cleaning%'
AND
pd.products_name LIKE '%supplies%'
)
OR
(
p.products_model LIKE '%cleaning%'
AND
p.products_model LIKE '%supplies%'
)
OR
p.products_id = 'cleaning supplies'
OR
v.vendors_prefix = 'cleaning supplies'
OR
CONCAT (CAST (v.vendors_prefix AS CHAR), '-', CAST (p.products_id AS CHAR)) = 'cleaning supplies'
)
AND
p.products_status = '1'
AND
c.categories_status = '1'
AND
p.products_id = pd.products_id
AND
p2c.products_id = pd.products_id
AND
p2c.categories_id = c.categories_id
ORDER BY
pd.products_name
你能后的输出'EXPLAIN your_query'? – richsage 2010-05-19 19:41:29
查询没有搜索部分需要多长时间;是搜索还是加入正在放慢速度? – jeroen 2010-05-19 19:59:48
如果你有很多行,那么你应该使用Mysql索引。谷歌关于他们,它可以使查询更快。 – 2010-05-19 19:49:32