TS: Datum / Uhrzeit speichern

Beitrag lesen

Hello,

Nur damit ich Dich richtig verstehe: Du meinst sicher, dass es dann sinnvoll ist, einen eigenen Index über die Zeit zu legen?

Nein. Über einen Ausdruck.

Das ist mWn bei MySQL nur möglich, wenn man die Zeit in einer eigenen Spalte hält. Oder kann MySQL jetzt auch Indexe über Teilstrings/-spalten bzw. Funktionsergebnisse?

Der übliche Workaround für Indexe über Ausdrücke in MySQL ist eine vorberechnete Spalte, die das Ergebnis des Ausdrucks enthält und über einen Trigger aktualisiert wird.

Bevor ich dann einen Index über Datetime und einen über den per Trigger berechneten Ausdruck für Time lege, halte ich die Werte für Date und Time lieber getrennt und lasse jeweils einen Index über die Spalten laufen. Das spart den Trigger und macht den Platzbedarf für die Indexe kleiner.

len(Index(Datetime)) > len(Index(Date))

Anderenfalls könnte man noch einen zusätzlichen Index über Date+Time legen. Das kostet dann zwar auch Speicherzeit und Handlungszeit beim DMS, spart aber den Trigger.

Was macht der Optimizer, wenn man dann trotzdem über den Ausdruck Date+Time sucht, wenn über beide Spaöten ein eigener Index besteht? Ich kann das jetzt gerade leider nicht ausprobieren. Wäre nett, wenn das mal jemand anderes beantworten könnte ;-)

Jedenfalls ist es mMn falsch, bei Der DatenModellDefinition die vorgesehenen Anwendungsszenarien außer Betracht zu lassen. Dedlfix hatte deshalb wohl auch schon die möglichen Sonderbedingungen berücksichtigt.

Glück Auf
Tom vom Berg

--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.