Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1314 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [SQL]Preference MAX(id) ou Table

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL]Preference MAX(id) ou Table

n°315653
Noda
Posté le 22-02-2003 à 20:54:00  profilanswer
 

Salut les gens.
 
Je me pose une question.
Prenons une page visité disons ... 1000 fois à l'heure.
 
Sur cette page on doit afficher l'id max de x tables.
 
Est ce k'il vaut mieux faire un SELECT MAX(id) FROM Table sur les x tables ?
Ou alors lors de l'enregistrement des données dans les x tables concernés mettre à jour le MAX(id) puis faire un select sur les x tables ?

mood
Publicité
Posté le 22-02-2003 à 20:54:00  profilanswer
 

n°315710
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-02-2003 à 00:53:01  profilanswer
 

Si tu consultes vraiment souvent le max id que ce que tu n'ajoute un id, je dirais que tu as peut-être intérêt à stocker ce max id, mais faut être sûr qu'il soit mis à jour lors de l'ajout d'un id
 
faudrait voir au niveau du sgbd si lui demander le max d'un id (si l'id est autoincrement et indexé par ex) c'est vraiment plus lourd que de récupérer la valeur d'un champ.


Message édité par antp le 23-02-2003 à 00:54:07

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°315711
Noda
Posté le 23-02-2003 à 00:57:51  profilanswer
 

C'est du Mysql
Pas le moyen de me payer Oracle :/  
Et je ne connait pgsql.
 
Merci je vais faire des tests ;)

n°315739
Core 666
Posté le 23-02-2003 à 10:01:12  profilanswer
 

Ca va revenir au même. J'aurais quand même une nette préférence pour le MAX(id) car :
 
- L'information est plus fiable, dans la mesure où tu n'utilises probablement pas les transactions.
- Ca économise un paquet de requêtes UPDATE.
- Ce n'est pas plus lent. Le MAX est stocké en dur dans les indexs :
 

mysql> EXPLAIN SELECT max(id) FROM news;
+------------------------------+
| Comment                      |
+------------------------------+
| Select tables optimized away |
+------------------------------+
1 row in set (0.00 sec)


 
D'où l'intérêt de ne JAMAIS faire de SELECT ID FROM table ORDER BY id DESC LIMIT 1
 
Le résultat est le même, par contre sur les grandes tables la rapidité n'a pas grand chose à voir (MySQL 4 excepté puisque les index descendants sont gérés, mais bon).

n°315754
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-02-2003 à 11:14:15  profilanswer
 

Core 666 a écrit :


- Ce n'est pas plus lent. Le MAX est stocké en dur dans les indexs :


 
oui, un champ indexé évidemment...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°315842
Core 666
Posté le 23-02-2003 à 14:58:41  profilanswer
 

Oui, évidement, mais il ne fait pas mention de clause WHERE dans sa requête, et j'ose espérer que sur une page consultée 1000 fois par heure il a au moins une clef primaire sur le champ id :D

n°315964
Noda
Posté le 23-02-2003 à 19:45:06  profilanswer
 

merci de votre aide

n°316054
mrbebert
Posté le 23-02-2003 à 22:12:09  profilanswer
 

S'il s'agit d'un champ auto-incrémenté, tu dois aussi pouvoir récupérer la future valeur très rapidement.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [SQL]Preference MAX(id) ou Table

 

Sujets relatifs
MySql : Alter Table ....ADDcherche bon profiler de préférence avec GUI
Requête SQL toute simple.... AIDE SVP[Access] Requete SQL permettant de comparer 2 champs sur 2 tables
sauver des donner ds une table mySQLRequete Sql suivant la premiére lettre
Remplir un ComboBox avec une requête SQL ?[SQL sous VBA] dans Access 97
[EasyPhp Mysql] mise a jour automatique d'une table a partir d1 filesyntaxe de Dbschema sous bas SQL
Plus de sujets relatifs à : [SQL]Preference MAX(id) ou Table


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR