- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева

Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Вроде простой запрос, но не могу заставить оптимизатор использовать индекс item_id у таблицы t1
force index пробовал, он просто игнорируется. Как так? ПРобовал сделать аналогичный селект (чисто посмотреть как селект будет отрабатывать), тоже самое, индекс не используется. Я уже и удалил его и заново создал - пофиг.
Индексы таблицы t1
С информации об индексах и EXPLAIN можно сделать вывод, что таблицы имеют одинаковое число записей, 1 к 1.
А также индексу по сути не чего фильтровать, базе нужно прочитать всю таблицу.
Можете условие с WHERE переместить в ON для JOIN.
С информации об индексах и EXPLAIN можно сделать вывод, что таблицы имеют одинаковое число записей, 1 к 1.
А также индексу по сути не чего фильтровать, базе нужно прочитать всю таблицу.
Можете условие с WHERE переместить в ON для JOIN.
Всего в таблице более 700K записей. Условие WHERE отбирает чуть более 200, но почему то сканируя всю таблицу. Перемещать WHERE в ON для JOIN пробовал, без эффекта.
Вот эксплейн селекта
Вот убрал Where
Вот с форсирование индекса (может не так форсирую?)
Ну фильтрация происходит по полям второй таблицы
Ну фильтрация происходит по полям второй таблицы
А для первой даже ORDER BY нет
Возможно в первой таблице лишние индексы
Можно попробовать поменять порядок JOIN и джойнить через STRAIGHT_JOIN
Возможно OR нужно заменить на 2 запроса, чтобы каждый запрос мог заюзать индекс второй таблицы
Сбросьте весь запрос текстом
Сбросьте весь запрос текстом
UPDATE xyfq1_professions AS t1
inner JOIN STRAIGHT_JOIN xyfq1_items AS t2
SET t1.average = t2.average, t1.comments = t2.comments
WHERE t1.item_id = t2.id and (t2.average > 0 OR t2.comments > 0)