MySQL Forums
Forum List  »  French

Re: Last ID
Posted by: Julien Stuby
Date: December 27, 2008 01:07PM

Je poste le dernier message pour que le suivit soit cohérent :
Dernier message du 26 Décembre 2008 :


Jean Molliné Wrote:
-------------------------------------------------------
> ... pourrions nous modifier les requêtes insert
> et update d'une table cible pour post-enregistrer
> la valeur du nouveau ID sans appeler explicitement
> la procédure stockée
>
> Je ne suis pas certain de bien saisir l'intérêt
> de la chose. En utilisant un trigger, on appelle
> pas explicitement la procédure stockée, c'est le
> trigger qui va s'en charger en détectant
> l'insertion ou la mise à jour. Je ne suis pas un
> spécialiste en la matière non plus, mais l'idée
> générale reste la même et on tente de gagner en
> performances si j'ai bien suivi. Or à mon sens,
> ce n'est pas là qu'on fera des gains
> significatifs : Ce qu'il faudrait étudier
> soigneusement, ce sont les choix des index par
> exemple. L'utilisation d'un EXPLAIN sur les
> requêtes peut s'avérer une aide précieuse en la
> matière.

Triggers c'est du bon :) donc on arrive récupère le lastID assez facilement, reste le problème de la tête de lecture ! En faite pour faire un tris elle parcours l'ensemble des données, puis retourne le tris.

Prennons l'exemple :

Select * from lines;

--> il n'y pas de tris, les enregistrements sont retourné selon le sens l'empilage, la tête de lecture parcours entièrement la table

Select * from lines limit 10

--> il n'y pas de tris, les enregistrements sont retourné selon le sens l'empilage, la tête de lecture parcours les 10 premiers enregistrements

Select * from lines where ID>2000

--> il y a un tris sur la colonne ID (du plus petit vers le plus grands), la tête de lecture parcours l'ensemble des enregistrements, les enregistrements sont retournés selon l'ordre du tris.

Donc la solution la plus rapide c'est le limit car il y a pas de tris et la tête de lecture ne parcours pas l'ensemble des enregistrements ( je dis cela selon mes testes, si on pourrait ensemble se pencher dessus ? ). Le plus grand problème avec le limit sans tris, c'est qu'il lit selon l'ordre d'empilage, du bas vers le haut ! Si il lisait du haut vers le bas, il serait simple de retourner les 10 derniers enregistrements insérés dans une table (je parle ici d'empilage simple, sans modification et suppression d'élément dans la table -> ref. Huu Da Tran :) ) -> Il serait simple de retourner les données à vitesse grand V sans traitement superflu.

Si bien même tout les données étaient indexées et que le traitement se faisait entièrement en mémoire, cela n'enlèverait en rien les traitements superflu effectués sur la table.

Si quelqu'un voit quelque chose ?

:)

Options: ReplyQuote


Subject
Views
Written By
Posted
18668
April 02, 2008 06:40PM
5905
April 02, 2008 11:44PM
5156
April 03, 2008 12:21PM
4841
April 04, 2008 10:38AM
4841
April 04, 2008 09:34PM
5094
June 11, 2008 04:34PM
4790
September 15, 2008 04:24PM
4493
September 16, 2008 08:10AM
3718
September 17, 2008 06:19PM
4141
September 22, 2008 08:36AM
4104
September 22, 2008 03:07PM
3971
September 23, 2008 08:45AM
4302
September 26, 2008 07:20AM
4346
September 26, 2008 04:19PM
Re: Last ID
4002
December 27, 2008 01:07PM
4216
December 26, 2008 10:07PM
5006
April 08, 2008 01:14AM
5539
June 09, 2008 04:47PM
3692
December 27, 2008 01:02PM
3991
February 05, 2009 08:40PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.