Оптимизация скорости запросов mysql

У меня есть следующее, которое при самостоятельном запуске выполняется очень быстро, но когда я выполняю это для многих entity_id , запросы начинают занимать больше времени и дольше (цикл представляет собой PHP foreach), например, этот запрос занимает всего 0,078, но один и тот же запрос для другого объекта внутри цикла занимает до 2,1 секунды, запросы, похоже, становятся все медленнее и медленнее, чем больше объектов я помещаю в петле. Почему это? и как я могу улучшить / оптимизировать запрос?

foreach($entity_ids as $entity_id) {
    SELECT COUNT(*) as prev, DATE_FORMAT(`created`, '%Y%m%d') AS date_group 
    FROM articles_entities 
    WHERE entity_id = '$entity_id' 
    AND `created` >= DATE_SUB(CURDATE(), INTERVAL 10 DAY) 
    GROUP BY date_group

    // store result
}

У меня следующая структура таблицы:

CREATE TABLE `articles_entities` (
  `id` CHAR(36) NOT NULL,
  `article_id` CHAR(36) NOT NULL,
  `entity_id` CHAR(36) NOT NULL,
  `created` DATETIME DEFAULT NULL,
  `modified` DATETIME DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `article_id` (`article_id`),
  KEY `entity_id` (`entity_id`),
  KEY `created` (`created`)
) ENGINE=MYISAM DEFAULT CHARSET=utf8;
6
задан Lizard 7 December 2010 в 09:47
поделиться