Задавайте вопросы, мы ответим
Вы не зашли.
Один и тот же запрос без left join выполняется 1-2 секунды
а с left join около 40 секунд...
Отредактированно Phantom (03.05.2018 13:01:27)
Неактивен
В таблице system_articles_viewed нет индекса на article_id? Стоит его добавить, а затем посмотреть каким будет новый порядок JOIN.
Неактивен
rgbeast написал:
В таблице system_articles_viewed нет индекса на article_id? Стоит его добавить, а затем посмотреть каким будет новый порядок JOIN.
Я сливаю данные из старых баз. Я ничего не могу и не буду в них менять. Производительность критична лишь потому что баз таких с одинаковой структурой 10 штук с кучей данных. К тому же я для удобства сделал из этого запроса вьюху которую к тому же запросах юзают другие вьюхи и если она выполняется 40 секунд то другая вьюха использующая ее уже 10 минут...
Отредактированно Phantom (03.05.2018 13:08:07)
Неактивен
Если не делать индекс, то можно попробовать SELECT STRAIGHT_JOIN, а затем поменять порядок INNER JOIN. С некоторой вероятностью другой порядок исполнения будет быстрее.
Неактивен
rgbeast написал:
Если не делать индекс, то можно попробовать SELECT STRAIGHT_JOIN, а затем поменять порядок INNER JOIN. С некоторой вероятностью другой порядок исполнения будет быстрее.
Первый раз слышу про такой джойн... Вот так?
Неактивен
Стоит вернуться к обсуждению индекса. Почему его нет? Таблица получена каким-то импоротом?
Создание индекса не приведет к изменению данных.
Неактивен
rgbeast написал:
Стоит вернуться к обсуждению индекса. Почему его нет? Таблица получена каким-то импоротом?
Создание индекса не приведет к изменению данных.ALTER TABLE system_articles_viewed ADD KEY(article_id);
Кодеры орудовавшие над сайтом до меня каждый год перекопировали базу и проект, переодически меняя ее. Моя задача - нормализовать структуру и слить все данные за 10 лет в одну базу. При этом сайт все еще работает (там как-бы по подсайту на каждый год) на этих базах... Локально я их не копировал, т.к. больно долго и мне все-равно они только readonly нужны. Так что если что-то вдруг сломается от моих изменений (а там такой замысловатый код на php, что лучше не заглядывать) до того как я все перепишу и солью то будет плохо.
Отредактированно rgbeast (03.05.2018 15:43:20)
Неактивен
Обычно создание индекса не ломает приложение.
Неактивен
замысловатый код
Зачем? То что там и выше было уже вроде устоявшегося выражения везде используется.
А вообще я попробовал индекс добавить все-таки. Реально помогло! Теперь отрабатывает за секунду запрос. И вроде бы ничего не сломалось (надеюсь). Спасибо!
Неактивен
Phantom, согласен, что это произвол модератора, Вы не нарушали правил. В данном случае Вами были использованы слова разговорной речи, которые несут не смысловую, а эмоциональную окраску. Это не ненормативная лексика, но это заменитель мата, который делает стиль текстов не таким, какой нам нравится на форуме.
Неактивен
rgbeast написал:
Это не ненормативная лексика, но это заменитель мата
Но г. никогда не было матом. Это продукт жизнедеятельности! Впрочем ладно. Просто смысл меняется от таких правок и выглядит на мой взгляд комично.
Неактивен