long_forum
Benutzer
- Beiträge
- 17
Morgen,
ich habe die nachfolgende Abfrage, welche auf ca. 2 Millionen Datensätze aus rsyslog zugreift. Ich würde jetzt gerne die Datensätze zählen lassen - entweder alle Datensätze oder je nach Suchoption mittels like. Leider braucht die Abfrage 6 Sekunden und mehr ....
Selbst mit Unterabfragen benötigt er sogar noch mehr Zeit:
Habe auf die Felder FromHost, DeviceReportedTime, SysLogTag und Message einen index gesetzt nach dem Schema:
Wie kann ich meine Abfrage beschleunigungen bzw. meinen Indexe sinnvoll dafür einbinden???
ich habe die nachfolgende Abfrage, welche auf ca. 2 Millionen Datensätze aus rsyslog zugreift. Ich würde jetzt gerne die Datensätze zählen lassen - entweder alle Datensätze oder je nach Suchoption mittels like. Leider braucht die Abfrage 6 Sekunden und mehr ....
Code:
SELECT COUNT(*) FROM SystemEvents WHERE FromHost like '%' AND SysLogTag like '%' AND Message like '%' AND DeviceReportedTime like '%';
Selbst mit Unterabfragen benötigt er sogar noch mehr Zeit:
Code:
SELECT COUNT(*) FROM
(SELECT FromHost FROM
(SELECT FromHost, SysLogTag FROM
(SELECT FromHost, SysLogTag, Message FROM
(SELECT FromHost, SyslogTag, DeviceReportedTime, Message FROM SystemEvents WHERE DeviceReportedTime like '%".$txt_DeviceReportedTime."%') tab1
WHERE Message like '%".$txt_Message."%') tab2
WHERE SysLogTag like '%".$search_SysLogTag."%') tab3
WHERE FromHost like '%".$search_FromHost."%') tab4
Habe auf die Felder FromHost, DeviceReportedTime, SysLogTag und Message einen index gesetzt nach dem Schema:
Code:
ALTER TABLE SystemEvents ADD INDEX (columname);
Wie kann ich meine Abfrage beschleunigungen bzw. meinen Indexe sinnvoll dafür einbinden???