Ich verwende derzeit die folgende Abfrage, die ca. 8 Minuten dauert, um das Ergebnis aufgrund der Datenmenge zurückgeben (ca. 14 Monate). Kann ich das bitte beschleunigen?SQL - beschleunigen Sie die Abfrage
Die betreffende Datenbank ist MySQL mit InnoDB-Engine
select
CUSTOMER as CUST,
SUM(IF(PAGE_TYPE = 'C',PAGE_TYPE_COUNT,0)) AS TOTAL_C,
SUM(IF(PAGE_TYPE = 'D',PAGE_TYPE_COUNT,0)) AS TOTAL_D
from
PAGE_HITS
where
EVE_DATE >= '2016-01-01' and EVE_DATE <= '2016-01-05'
and SITE = 'P'
and SITE_SERV like 'serv1X%'
group by
CUST
Daten von 6 Monaten verteilt. Jede Spalte, die in die WHERE-Klausel eingeht, wird indiziert. Dort wäre eine ganze Reihe von Indizes & eine große Liste hier aufzulisten. Daher nur in Worten zusammenfassen. Im Hinblick auf diese Abfrage ist EVE_DATE + PAGE_TYPE_COUNT
eines des zusammengesetzten Indizes & so CUST + SITE_SERV + EVE_DATE
sind, EVE_DATE + SITE_SERV
, EVE_DATE + SITE
,
Der Primärschlüssel ist eigentlich eine dummy Autoinkrement Nummer. Es wird nicht verwendet, um ehrlich zu sein. Ich habe keinen Zugriff auf den EXPLAIN-Plan. Ich werde sehen, was ich dafür tun kann.
Ich würde mich über jede Hilfe freuen, diese bitte zu verbessern.
Können Sie angeben, welche Indizes verwendet werden (falls vorhanden) und wie die Strukturen aussehen? Primärschlüssel werden verwendet usw.? – CR41G14
könnten Sie mehr Details zur Verfügung stellen: Anzahl Zeilen, Indizes, Speicher-Engine und usw. –
Vielen Dank. Leider habe ich die Aktualisierung dieser Details verpasst. Lass mich das jetzt tun. – usert4jju7