Best-practice-Frage für MySQL: order by id oder Datum?

Dies ist ein noobish Frage, aber ich habe nie eine klare Antwort auf.

Angenommen ich habe eine DB-Tabelle mit folgenden Felder und Werte:

| id | date_added          | balance |
+------------------------------------+
|  1 | 2009-12-01 19:43:22 | 1237.50 |
|  2 | 2010-01-12 03:19:54 |  473.00 |
|  3 | 2010-01-12 03:19:54 | 2131.20 |
|  4 | 2010-01-20 11:27:31 | 3238.10 |
|  5 | 2010-01-25 22:52:07 |  569.40 |
+------------------------------------+    


Dies ist für eine sehr einfache 'Rechnungswesen' sub-system. Ich möchte die jüngste Bilanz. Die id Bereich ist auf auto_increment. Normalerweise würde ich verwenden:

SELECT balance FROM my_table ORDER BY date_added DESC LIMIT 1;

Aber ich brauche, um absolut sicher, dass der zurückgegebene Wert ist der jüngste... (siehe id# 2 & 3 oben)

1) Wäre ich besser dran mit:

SELECT balance FROM my_table ORDER BY id DESC LIMIT 1;

2) Oder wäre das eine bessere Lösung?:

SELECT balance FROM my_table ORDER BY date_added,id DESC LIMIT 1;


AFAIK auto_increment funktioniert Recht gut, aber ist es zuverlässig genug, um zu Sortieren, etwas, das entscheidend durch? Das ist, warum ich ' m denken, die Sortierung, die von beiden Bereichen ist eine bessere Idee, aber ich habe gesehen, einige wirklich skurrile Verhalten in MySQL, wenn ich das in der Vergangenheit getan. Oder wenn es eine noch bessere Lösung, ich würde schätzen Ihre Eingabe.

Vielen Dank im Voraus!

Brian

Schreibe einen Kommentar