以下视图通过一个包含大约12M记录的表格,确定哪一个属于前7个电子邮件提供商(gmail / yahoo等),然后通过email_id(它适用的电子邮件)和域对结果进行分组
问题在于它非常慢......并且已经无法使用。
有没有关于优化/改进它的建议?
DELIMITER $$
ALTER ALGORITHM=UNDEFINED DEFINER=`core_usr`@`%` SQL SECURITY DEFINER VIEW `email_opens_by_provider` AS (
SELECT
SUBSTRING_INDEX(`email_stats`.`email_address`,'@',-(1)) AS `domain`,
SUM(`email_stats`.`is_read`) AS `SUM(is_read)`,
COUNT(0) AS `email_count`,
`email_stats`.`email_id` AS `email_id`
FROM `email_stats`
WHERE ((SUBSTRING_INDEX(`email_stats`.`email_address`,'@', - (1))IN('gmail.com','yahoo.com','hotmail.com','aol.com','comcast.net','msn.com','outlook.com')))
GROUP BY SUBSTRING_INDEX(`email_stats`.`email_address`,'@', - (1)),`email_stats`.`email_id`)$$
DELIMITER ;