mysql sorgu hız optimizasyonu

0 Cevap php

Ben kendi çalıştırdığınızda çok hızlı bir takip var, ama ben bu yapıyorum yaparken birçok entity_id sorgular (örneğin döngü bir PHP foreach) uzun ve artık bu sorguyu almaya başlar sadece 0.078 alır ama 2.1 saniye kadar, the queries seem to get slower and slower the more entities I put in the loop. Why is this? and how can I improve/optimize the query? sürer üzerinde döngü içinde farklı bir varlık üzerinde aynı sorgu

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
}

Aşağıdaki tablo yapıya sahiptir:

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;

0 Cevap