Hi!
habe jetzt gerade kein MySQL zur Hand, aber ich nehme mal an, dass es schneller wird, wenn man den expiration-Zeitstempel vorher berechnet und dann nur noch mit einer Konstante vergleicht. Dies dürfte es MySQL einfacher fallen lassen, einen etwaigen Index auf expiration zu nutzen.
MySQL kann _sehr_ gut rechnen - das fällt in den Bereich Microoptimierung, ich glaube kaum, dass PHP signifikant schneller ist als MySQL wenn es um simple Subtraktionen geht
Das kommt drauf an, wie MySQL mit dem UNIX_TIMESTAMP() in dem Statement umgeht. Wenn es das für jeden Datensatz einzeln berechnet, dann kann MySQL zwar weiterhin schnell rechnen, muss aber einen Full-Table-Scan machen und kann keinen Index verwenden, was dann schnell nicht mehr unter Mikrooptimierung fällt. Wenn der Wert nur einmal beim Statement-Parsen berechnet wird, dann findet auch die anschließende Rechnung nur einmal statt, und mit diesem konstanten Wert kann ein Index verwendet werden.
Was nun von beiden eintritt, konnte ich nicht herausfinden, entweder schweigt das Handbuch oder versteckt die Information an einer Stelle, an der ich nicht nachgeschaut habe.
Lo!