- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Task ( status, type, provider, cat )
TaskFlow (executor_acc_id, url_id )
составные индексы созданы по всем полям
Покажите CREATE TABLE
Может у вас неиспользуемые индексы
Покажите EXPLAIN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY task ref stat_task,getlist,getlist_bot getlist_bot 6 const,const,const,const 8731 Using index condition; Using where
1. Покажите EXPLAIN
2. Вот сейчас у себя написан запрос с NOT EXISTS и с LEFT JOIN
NOT EXISTS не использовал индексов, в то время как LEFT JOIN использовал и в Extra числилось "Not exists"
Разницы не заметили между лефт джойн и not exist. Выбор на втором варианте так как данные из второй таблицы нам не нужны. Exlplain добавил в стартовый пост
Покажите CREATE TABLE
Может у вас неиспользуемые индексы
Здравствуйте. Индексы использует
Здравствуйте. Индексы использует
Я имел в виду, в таблице есть другие индексы, которые не используются другими запросами.
А ресурсы на их поддержание тратятся.
По EXPLAIN
Первая таблица - длина индекса - 6 байт. А индекс Task по идее должен быть хотя бы 1+1+1+4 (если cat - 4 байта) = 7 байт.
Эти индексы не фигурируют:
Task ( status, type, provider, cat )
TaskFlow (executor_acc_id, url_id )
2 раза
Using where
То есть InnoDB по индексу отдала данные, но mysql пришлось еще их дофильтровывать.
Я имел в виду, в таблице есть другие индексы, которые не используются другими запросами.
А ресурсы на их поддержание тратятся.
в таск есть еще один индекс но он используется в другом скрипте
Разницы не заметили между лефт джойн и not exist. Выбор на втором варианте так как данные из второй таблицы нам не нужны.
А Вы данные со второй таблицы и не запрашивайте, а добавьте в WHERE условие что-то вроде:
AND flow.id IS NULL
в таск есть еще один индекс но он используется в другом скрипте
Вижу в таск 3 индекса
А Вы данные со второй таблицы и не запрашивайте, а добавьте в WHERE условие что-то вроде:
Вижу в таск 3 индекса
да и они все используются
Покажите еще
И
А Вы данные со второй таблицы и не запрашивайте, а добавьте в WHERE условие что-то вроде:
Вижу в таск 3 индекса
а какой смысл в лефт джойн? какой выйгрыш может быть? у нас раньше он итак стоял, сменили на NOT exitst