Я написал запрос, который возвращает счет. Мой вопрос в том, является ли этот эффективный запрос?Эффективный запрос для подсчета
attribute_value имеет тип «longtext» и может иметь не более 5 значений. Все эти значения атрибутов исходят от ENUM (5 различных строк). Обе таблицы могут расти дольше. managed_channel может содержать миллион записей, а managed_attribute может содержать в 10 раз больше записей managed_channel
Помня об этом, будет ли этот запрос работать эффективно, или мне, возможно, придется использовать другие методы (индекс?), чтобы повысить производительность.
SELECT COUNT(*) as mo_count
FROM managed_channel mo, managed_attribute ma
WHERE mo.id = ma.mo_id
AND mo.class_type = 3946
AND ma.attribute_type = 4293
AND ma.attribute_value IN ("ILLEGAL_MPS", "ILLEGAL_ID", "ILLEGAL_IP")
BTW, база данных mysql –
Производительность такого запроса будет в значительной степени зависеть от созданных вами индексов. Невозможно судить по этому поводу, какая производительность может быть. В любом случае, если вы хотите знать производительность, измерьте ее. Все, что мы предлагаем, будет немного больше, чем образованные догадки. –
Не могу сказать, не знаю количество строк, распределение данных, индексы и т. Д. – jarlh