Les meilleures pratiques de question pour MySQL: order by id ou la date?

C'est une sorte de noobish question, mais c'est celui que je n'ai jamais été donné un droit de réponse.

Supposons que j'ai une DB table avec les champs suivants et de valeurs:

| 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 |
+------------------------------------+    


C'est très de base "comptables" sous-système. Je veux obtenir la plus récente de la balance. Le id champ est de type auto_increment. En règle générale, je voudrais utiliser:

SELECT balance FROM my_table ORDER BY date_added DESC LIMIT 1;

Mais j'ai besoin de faire absolument sûr que la valeur retournée est la plus récente... (voir id# 2 & 3 ci-dessus)

1) je serais mieux de les utiliser:

SELECT balance FROM my_table ORDER BY id DESC LIMIT 1;

2) Ou serait-ce une meilleure solution?:

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


Autant que je sache, auto_increment fonctionne assez bien, mais est-il suffisamment fiable pour trier quelque chose d'essentiel? C'est pourquoi je pense tri par deux champs est une meilleure idée, mais j'ai vu des vraiment bizarre le comportement de MySQL, quand je l'ai fait dans le passé. Ou si il y a une solution encore meilleure, je vous remercie de votre entrée.

Merci d'avance!

Brian

OriginalL'auteur DondeEstaMiCulo | 2010-01-30