Запрос становится очень длинным при использовании «GROUP BY».Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Запрос становится очень длинным при использовании «GROUP BY».

Сообщение Anonymous »

Я пытаюсь оптимизировать свой веб-сайт и обнаружил несколько длинных SQL-запросов (3-4 секунды). Когда я создавал сайт несколько лет назад, базы данных были пусты, поэтому я подумал, что SQL-запрос хорош, но теперь у меня 100 000 строк, и это очень медленно.
Вот просьба:

Код: Выделить всё

SELECT c.*, p.*, COUNT(o.OrderID) as nb_total FROM orders o INNER JOIN
products p on o.OrderProductID = p.ProductID INNER JOIN categories c
on c.CategoryID = p.ProductCategoryID WHERE p.deleted = 0 GROUP BY
o.OrderProductID ORDER BY nb_total DESC LIMIT 10
У меня есть 3 отдельные базы данных:
  • заказы
  • продукты
    категории
Этот запрос предназначен для поиска еще 10 заказанных товаров и получения некоторых данных из категории (цвет, значок), продукт (название, миниатюра) и по нему подсчитывать заказы.
У меня есть индексы по ProductCategoryID, CategoryID и OrderProductID.
Можете ли вы объяснить мне, почему без запроса GROUP BY требуется 0,00005 с, а с группой по нему - 3 секунды? И как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/790 ... g-group-by
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»