Salut a tous,
je voudrais savoir si il existait une requette permettant de récuperer uniquement le dernier id d'une table? Afin d'éviter de parcourir tout le tableau pour récuperer l'id max (ce qui coute assez cher en temps de clacul).
Salut a tous,
je voudrais savoir si il existait une requette permettant de récuperer uniquement le dernier id d'une table? Afin d'éviter de parcourir tout le tableau pour récuperer l'id max (ce qui coute assez cher en temps de clacul).
J'ai cherché dans la faq et j'ai TROUVE !!!
Comme quoi il faut bien réspecter les regles du forum avant de poster .
Pour récupérer le dernier id il faut faire:
$sql="SELECT * FROM `latable` ORDER BY `id` desc LIMIT 1";
Euh... pas sûr !
En effet, le ORDER BY fait un tri (complexité O(n^2) ) et donc la recherche du MAX risque d'être plus performante (complexité O(n) seulement) .
Il faudra toutefois que l'on confirme ou infirme ce que je viens de dire, et que l'on corrige la FAQ le cas échéant.
"On en a vu poser les armes avant de se tirer une balle dans le pied..."
-- pydévelop
Derniers articles:
(SQL Server) Introduction à la gestion des droits
(UML) Souplesse et modularité grâce aux Design Patterns
(UML) Le Pattern Etat
Autres articles...
La différence de performance ne devrait pas être si grande que ça :
De plus avec cette méthode, on peut retourner la ligne entière alors qu'avec un MAX() il faut faire 2 requêtes ou une requête imbriquée, ce qui élimine le gain éventuel de performance.If you use LIMIT row_count with ORDER BY, MySQL ends the sorting as soon as it has found the first row_count rows of the sorted result, rather than sorting the entire result. If ordering is done by using an index, this is very fast. If a filesort must be done, all rows that match the query without the LIMIT clause must be selected, and most or all of them must be sorted, before it can be ascertained that the first row_count rows have been found. In either case, once the rows have been found, there is no need to sort any remainder of the result set, and MySQL does not do so.
Pensez au bouton
J'avais compris que Death83 voulait récupérer le dernier id, et non le dernier enregistrement (id + autres colonnes), c'est pour ça que j'ai pensé au MAX.
"On en a vu poser les armes avant de se tirer une balle dans le pied..."
-- pydévelop
Derniers articles:
(SQL Server) Introduction à la gestion des droits
(UML) Souplesse et modularité grâce aux Design Patterns
(UML) Le Pattern Etat
Autres articles...
Tout à fait mais l'intitulé de la question de la FAQ à laquelle fait allusion Death83 est "Comment récupérer le dernier enregistrement inséré ?"
Enfin les deux sont viables de toute façon.
Au passage Death83 merci de mettre le sujet en [Résolu] si c'est le cas...
Pensez au bouton
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager