1. Покажите EXPLAIN
2. Вот сейчас у себя написан запрос с NOT EXISTS и с LEFT JOIN
NOT EXISTS не использовал индексов, в то время как LEFT JOIN использовал и в Extra числилось "Not exists"
Разницы не заметили между лефт джойн и not exist. Выбор на втором варианте так как данные из второй таблицы нам не нужны. Exlplain добавил в стартовый пост
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
Вставки идут как? Есть ещё предположения, что индексы пересчитываются и делать вставки надо через COMMIT, если они групповые.
инсерты идут каждый запрос, сначала основной селект, по результатам его инсерт в таскфлоу
железо - 2 слейва с которых читаем, достаточно серьезные
Я бы рекомендовал отказаться от текстовых индексов и заменить их цифровыми, если это возможно.
Т.е. вместо active и deactive использовать 0 и 1, вместо insta, vk, fb использовать 1,2,3 итд.
Также можно попробовать создать индексы по двум (или более) полям, если есть такие сочетания, которые встречаются очень часто. Например
если в большинстве запросов status = active и type = follow_profile, то создать совместный индекс по ним и посмотреть на результаты.
Также если БД Myisam, то перейти на Innodb
Task ( status, type, provider, cat )TaskFlow (executor_acc_id, url_id )
составные индексы созданы по всем полям
innodb
Тип полня этих таблиц ENUM
Первый раз такое вижу, по топ 1 вч
У вас он точно не изменён? А то мы как только что-то случается (я по себе сужу). Сразу глаза на выдачу вылупляем.
Гугл поменял тайтл на вч ключ, и убрал вообще discription
Да неплохое, а где нынче ссылки то качественные брать?