Задать вопрос
@lexchz

Почему SQL-запрос на MacOS (M2) исполняется медленнее, чем на shared-хостинге?

На виртуальном хостинге установлен MySQL 8.0, на макбуке M2 (ОЗУ 8 Гб) - MySQL 9.5.

Собственно, сам запрос:

SELECT pc2.category_id as id, COUNT(pc2.product_id) as total FROM oc_product_to_category pc JOIN oc_product_to_category pc2 ON pc.product_id = pc2.product_id JOIN oc_product p ON pc.product_id = p.product_id WHERE pc.category_id = 907 AND pc2.category_id IN (866,879,880,881,882,883,886,889,890,891,892,893,896,378,385,297,115,119,118,149,148,154,121,163,122,83,171,71,45,175,81,298,59,26,62,921) AND p.status = 1 GROUP BY pc2.category_id;


На макбуке время выполнения - 0.048s, в то время как на хостинге - 0.03s. Казалось бы, на маке запросы должны исполняться гораздо быстрее, ведь на shared-хостинге ресурсы очень урезаны и сайты работают медленно. Но почему-то на макбуке время хуже в 1.5 раз.
В чём может быть причина? Может, сервер MySQL лучше оптимизирован под LINUX? Или нужно правильно настроить my.cnf? (В данный момент его нет).

Результат EXPLAIN c макбука:
spoiler
| -> Table scan on <temporary>
    -> Aggregate using temporary table
        -> Nested loop inner join  (cost=1768 rows=5498)
            -> Nested loop inner join  (cost=506 rows=344)
                -> Filter: (p.`status` = 1)  (cost=386 rows=344)
                    -> Table scan on p  (cost=386 rows=3436)
                -> Single-row covering index lookup on pc using PRIMARY (product_id = p.product_id, category_id = 907)  (cost=0.25 rows=1)
            -> Filter: (pc2.category_id in (866,879,880,881,882,883,886,889,890,891,892,893,896,378,385,297,115,119,118,149,148,154,121,163,122,83,171,71,45,175,81,298,59,26,62,921))  (cost=0.476 rows=16)
                -> Covering index lookup on pc2 using PRIMARY (product_id = p.product_id)  (cost=0.476 rows=32)
 |


Результат EXPLAIN c phpMyAdmin хостинга (тут доступа к терминалу нет):

spoiler
690f595d0312f150989411.png
  • Вопрос задан
  • 132 просмотра
Подписаться 1 Простой 8 комментариев
Помогут разобраться в теме Все курсы
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • Shultais Education
    Продвинутый SQL
    1 месяц
    Далее
  • Merion Academy
    Основы реляционных баз данных SQL
    1 месяц
    Далее
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
В чём может быть причина?

В чём угодно. Вопрос из серии "Почему Шумахер на жигулях обгоняет меня на феррари?"
Потому что железо - не главное, надо ещё уметь им пользоваться.

Учитывая, что вопрос явно праздный, и никакой осмысленной диагностической информации не приведено (кроме запроса, который совершенно бесполезен), то и ответа на него ждать не стоит.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы