Hi,
Ich habe ein Counter-Tabelle welches mit einem Logfile abgeglichen werden soll. Aus dem Counter werden in regelmäßigen Abständen Einträge ab einen Datum gelöscht aber nur Einträge wo der Cookie nicht im Logfile vermerkt ist. Aber die Cookies von meinen eigenen Surfen mit gelöscht werden (IE und FireFox) egal welches Datum.
Ebenfalls soll der Eintrag mit dem Maximal Cookie erhalten bleiben.
Nun benötigt die Abfrage schon ca 5 Sekunden für 3000 Counter und 6000 Logfile- Einträgen mit nur 35 verschiedenen Cookies (Cookies werden erst seit kurzem im Logfile gespeichert)
Frage: ist es sinnvoll die Cookies des Logfiles bei NOT IN(Select ...) zu Gruppieren, damit die Cookies zusammen gefasst werden, oder sollte ich die Gruppierung weglassen, für die Maximale Geschwindigkeit.
Hier der aktuelle Query
Wie könnte der Query string weiterhin optimiert werden?
Ich habe ein Counter-Tabelle welches mit einem Logfile abgeglichen werden soll. Aus dem Counter werden in regelmäßigen Abständen Einträge ab einen Datum gelöscht aber nur Einträge wo der Cookie nicht im Logfile vermerkt ist. Aber die Cookies von meinen eigenen Surfen mit gelöscht werden (IE und FireFox) egal welches Datum.
Ebenfalls soll der Eintrag mit dem Maximal Cookie erhalten bleiben.
Nun benötigt die Abfrage schon ca 5 Sekunden für 3000 Counter und 6000 Logfile- Einträgen mit nur 35 verschiedenen Cookies (Cookies werden erst seit kurzem im Logfile gespeichert)
Frage: ist es sinnvoll die Cookies des Logfiles bei NOT IN(Select ...) zu Gruppieren, damit die Cookies zusammen gefasst werden, oder sollte ich die Gruppierung weglassen, für die Maximale Geschwindigkeit.
Hier der aktuelle Query
Code:
"delete from `$dbtabelle_url`
where `id`='$killcookie1' or `id`='$killcookie2' or
(`surfdatum`<'$datum' and `id`<'$maxid' and
(`id` NOT IN(select `cookie` from `$dbtabelle_logfile` group by `cookie`))
)"
Wie könnte der Query string weiterhin optimiert werden?