Я пытаюсь оптимизировать SQL-запрос, указанный ниже.
Это в основном код поисковой системы, который извлекает продукты на основе названия продуктов. Он также проверяет номер модели продукта и включен ли он.
Это выполняется примерно за 1,6 секунды, когда я запускаю его непосредственно через инструмент phpMyAdmin, но в общей сложности занимает около 3 секунд для загрузки вместе с файлом PHP, в котором он находится.
Мне нужно добавить функцию поиска по категориям, и теперь, когда происходит сбой сервера MySQL, HELP!
Justin
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