SELECT COUNT(*) AS _cnt,(4294967295 & ip_groups.ip) AS _uip,users.id AS uid,INET_NTOA(4294967295 & ip_groups.ip) AS uip,ip_groups.mac AS umac FROM users,ip_groups,service_links,iptraffic_service_links WHERE ip_groups.is_deleted=0 AND ip_groups.ip_group_id=iptraffic_service_links.ip_group_id AND iptraffic_service_links.id=service_links.id AND service_links.user_id=users.id GROUP BY _uip,uid,uip,umac ORDER BY _uip ASC;
раньше он выполнялся за несколько секунд.
После обновления на 005, запрос выполняется полторы минуты ;(
Можно его как то оптимизировать?
DB: Mariadb102
SELECT COUNT(*) AS _cnt,(4294967295 & ip_groups.ip) AS _uip,users.id AS uid,INET_NTOA(4294967295 & ip_groups.ip) AS uip,ip_groups.mac AS umac FROM users,ip_groups,service_links,iptraffic_service_links WHERE ip_groups.is_deleted=0 AND ip_groups.ip_group_id=iptraffic_service_links.ip_group_id AND iptraffic_service_links.id=service_links.id AND service_links.user_id=users.id GROUP BY _uip,uid,uip,umac ORDER BY _uip ASC;
раньше он выполнялся за несколько секунд.
После обновления на 005, запрос выполняется полторы минуты ;(
Можно его как то оптимизировать?
DB: Mariadb102
Думаю можно, покажи какие поля из результата ты реально используешь.
Хотелось бы все оставить, как и в этом запросе, чтобы не переписывать скрипт.
А может проблема появилась не из за перехода с 003 на 005, а из за того что перешел с mysql 5.7 на mariadb 10.2 и стоит попробовать вернуться назад?
kirush писал(а):Хотелось бы все оставить, как и в этом запросе, чтобы не переписывать скрипт.
А может проблема появилась не из за перехода с 003 на 005, а из за того что перешел с mysql 5.7 на mariadb 10.2 и стоит попробовать вернуться назад?
SELECT
(4294967295 & ipg.ip) AS _uip,
us.id AS uid,
INET_NTOA(4294967295 & ipg.ip) AS uip,
ipg.mac AS umac
FROM
users AS us,
ip_groups AS ipg,
service_links AS sl,
iptraffic_service_links AS isl
WHERE 1
AND ipg.is_deleted = 0
AND sl.is_deleted = 0
AND ipg.ip_group_id = isl.ip_group_id
AND isl.id = sl.id
AND sl.user_id = us.id
ORDER BY _uip ASC
;
попробуй так, в новой версии в ип группах удаленные строки больше не хранятся поэтому все что is_deleted = 1 можешь смело удалить