-
-
Notifications
You must be signed in to change notification settings - Fork 213
DC_Table Filter Timestamp Optimierung #8485
Comments
|
@contao/developers @KaiserCh /cc |
|
Ja, der DB Query dauert signifikant länger, aber andererseits ist die Ergebnismenge auch deutlich kleiner. Ich hab hier z.B. ein Log, das nur Werte von einem Tag enthält, aber davon eben einige hundert Stück. Der alte Code hat den schnelleren Query, gibt dafür aber auch einige hundert Ergebnisse. Der langsamere Code bringt ein einzelnes Ergebnis. Ziemlich grenzwertig. Wirklich Power kriegt man da nur durch einen Wechsel weg von tstamp-Integern hin zu echten Dates, aber das fällt hier flach. |
|
Die Skriptlaufzeit verkürzt sich, da anschließend erheblich weniger Datensätze verarbeitet werden müssen. Die Laufzeit der Datenbankabfrage selbst verkürzt sich nicht. |
Vielen Dank für Deine Analyse. Das mit den Date-Feldern sehe ich genauso wie Du.
Ich mache dazu auch nochmal einen Test. |
|
Der Vorteil bei der Skriptlaufzeit liegt ungefähr bei einer Sekunde pro 100.000 Datensätze (verteilt über mehrere Monate) in tl_log. Vermutlich wird man da bei 892 Datensätzen noch keinen Unterschied messen können. |
|
Wie in Mumble am 6. Oktober besprochen, wollen wir diese Optimierung implementieren. Allerdings müssen wir berücksichtigen, dass wir nicht nur Tag-Filter haben, sondern auch Monat und Jahr. |
|
Implementiert in ce20bee. |
### 4.2.5 (2016-10-27) * Unlock members after password change (see contao/core#8545). * Register an alias for the language fallback page model (see contao/core#8544). * Correctly calculate the maximum length of tl_files.name (see contao/core#8536). * Correctly add the headline if a content element is versionized (see contao/core#8502). * Optimize the DCA sorting filter for date fields (see contao/core#8485). * Do not show version entries of deleted files (see contao/core#8480). * Redirect the empty URL depending on language and alias name (see contao/core#8498). * Apply `specialchars()` to widget attributes (see contao/core#8505). * Queue the requests when rebuilding the search index (see contao/core#8449). * Correctly determine the form field names in the file manager (see #600). * Correctly show the maximum file size in the form upload widget (see #595). * Correctly encode e-mail addresses in the text element (see #594). * Do not parse front end templates twice (see #599). * Correctly set host and scheme in the URL generator (see #592). * Correctly reload the page and file trees in "edit multiple" mode. * Correctly normalize the paths in the symlink command.


In DC_Table werden zur Generierung eines Filters nach Datum sämtliche verschiedene Timestamps aus der Datenbank abgerufen.
Tatsächlich benötigt werden jedoch nur sämtliche verschiedene Datumsangaben.
Ändert man so beispielsweise die Abfrage
SELECT DISTINCTtstampFROMtl_login `SELECT DISTINCT UNIX_TIMESTAMP(FROM_UNIXTIME(`tstamp` , '%Y-%m-%d')) AS `tstamp` FROM `tl_logverkürzt sich die Skriptlaufzeit bei großen Tabellen um mehrere Sekunden.The text was updated successfully, but these errors were encountered: