MYSQL Distinct abfrage

port29

deus.Server
Hallo Leute,

ich habe eine Frage an euch. In einer Tabelle habe ich Aufrufe zu einer Seite gespeichert.

php_session_id (Index)
ip
date
action
username
site_id

Nun will ich herausfinden, wieviele User z.B. heute eine bestimmte Seite besucht haben.

Code:
SELECT count(distinct(php_session_id)) as cnt from session_data where CURDATE() <FROM_UNIXTIME(date) and site_id=1;

Bei aktuell 250.000 Zeilen in der Tabelle kommen bei dieser Abfrage 64.000 Zeilen heraus. Die Abfrage dauert aktuell 0.8 sek. Kann mir jemand bitte sagen, wie ich diese Abfrage beschleunigen kann?
 
Probier mal Folgendes:
Code:
SELECT
        COUNT(DISTINCT(`php_session_id`)) AS `cnt`
  FROM
        `session_data`
  WHERE
        `site_id` = 1
    AND UNIX_TIMESTAMP() < `date`
Ich hoffe, durch die Änderung der Reihenfolge der Bedingung und der direkten Prüfung des Unix-Zeitstempels ohne Formatierung ist die Abfrage etwas flotter.
 
Hi,

bissl schneller ist es schon geworden, aber nur ein bissl ;)

ganz ohne where abfragen habe ich eine Laufzeit von 0.5 sek. Also auch unausstehlich lange
 

Neue Beiträge

Zurück