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

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  355  356  357  ..  486  487  488  489  490  491
Auteur Sujet :

les développeurs de forums, les 3/4 des forums sont down /o\

n°1357537
nraynaud
lol
Posté le 02-05-2006 à 07:59:58  profilanswer
 

Reprise du message précédent :
l'idée c'est en général d'ajouter de l'indirection

mood
Publicité
Posté le 02-05-2006 à 07:59:58  profilanswer
 

n°1357542
*syl*
--> []
Posté le 02-05-2006 à 08:25:02  profilanswer
 

nraynaud a écrit :

Code :
  1. char * pouet() {
  2.   return "kikoooooo";
  3. }


[:nraynaud]


 

nraynaud a écrit :

1) non
 
2) l'adresse existe encore, mais ce qu'il y a va changer dans les secondes qui viennent, toute la beauté du C !


 


 

Harkonnen a écrit :

non non, ça marche pas :D
mais si tu savais le nombre de bugs provoqués par ce genre de truc ! et si tu savais le nombre d'experts comptables qui utilisent des logiciels de compta renommés dont je taierais le nom, mais qui sont troués de la sorte, tu y réflechirais à deux fois avant de choisir un expert pour ta boite [:ddr555]


 
Moi je dis que ça marche parce que "kikoooooo" est une constante qui sera mise dans une zone mémoire spéciale en lecture seule, du coup l'adresse de cette variable ne pourra pas changer durant l'exécution du programme.  
 

Code :
  1. char* blabla(){
  2.      return "plop";   
  3. }
  4. 0x4012d5 <blabla>: push   ebp
  5. 0x4012d6 <blabla+1>: mov    ebp,esp
  6. 0x4012d8 <blabla+3>: mov    edx,0x403000
  7. 0x4012dd <blabla+8>: call   0x401770 <mcount>
  8. 0x4012e2 <blabla+13>: mov    eax,0x4012d0
  9. 0x4012e7 <blabla+18>: pop    ebp
  10. 0x4012e8 <blabla+19>: ret

n°1357552
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 02-05-2006 à 09:15:18  profilanswer
 

ben moi sque je vois, c'est que "plop" est placé en 0x4012d0, mais je vois pas en quoi cette adresse est en lecture seule [:petrus dei]
edit: elle fait quoi la fonction mcount() de la ligne 8 ?

Message cité 1 fois
Message édité par Harkonnen le 02-05-2006 à 09:16:15

---------------
J'ai un string dans l'array (Paris Hilton)
n°1357553
fabien
Vive la super 5 !
Posté le 02-05-2006 à 09:21:11  profilanswer
 

dégagez avec votre asm et c++ :o
 


---------------
Découvre le HFRcoin ✈ - smilies
n°1357556
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 02-05-2006 à 09:29:02  profilanswer
 

Harkonnen a écrit :


edit: elle fait quoi la fonction mcount() de la ligne 8 ?


bon apparemment, c'est une fonction de profilage, donc rien à voir avec le schmilblick [:petrus75]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1357570
nraynaud
lol
Posté le 02-05-2006 à 09:58:04  profilanswer
 

*syl* a écrit :

Moi je dis que ça marche parce que "kikoooooo" est une constante qui sera mise dans une zone mémoire spéciale en lecture seule, du coup l'adresse de cette variable ne pourra pas changer durant l'exécution du programme.  
 

Code :
  1. char* blabla(){
  2.      return "plop";   
  3. }
  4. 0x4012d5 <blabla>: push   ebp
  5. 0x4012d6 <blabla+1>: mov    ebp,esp
  6. 0x4012d8 <blabla+3>: mov    edx,0x403000
  7. 0x4012dd <blabla+8>: call   0x401770 <mcount>
  8. 0x4012e2 <blabla+13>: mov    eax,0x4012d0
  9. 0x4012e7 <blabla+18>: pop    ebp
  10. 0x4012e8 <blabla+19>: ret



wanna fight ?
 

Code :
  1. char* blabla(){
  2.      char* pouet = "plop";
  3.      pouet[2] = 'i';
  4.      return pouet;   
  5. }


---------------
trainoo.com, c'est fini
n°1357575
*syl*
--&gt; []
Posté le 02-05-2006 à 10:04:33  profilanswer
 

nraynaud a écrit :

wanna fight ?
 

Code :
  1. char* blabla(){
  2.      char* pouet = "plop";
  3.      pouet[2] = 'i';
  4.      return pouet;   
  5. }



 
Oui  [:*syl*]  
Ton code génère une violation d'accès mémoire..
"plop" est dans une zone mémoire en lecture seule, plus exactement lecture seule + exécution (section .text) donc je reste sur ce que j'ai dis :o


Message édité par *syl* le 02-05-2006 à 10:05:10
n°1357583
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 02-05-2006 à 10:10:12  profilanswer
 

compilé avec VS 2005 en mode debug:

Code :
  1. int main()
  2. {
  3. 004113D0  push        ebp 
  4. 004113D1  mov         ebp,esp
  5. 004113D3  sub         esp,0CCh
  6. 004113D9  push        ebx 
  7. 004113DA  push        esi 
  8. 004113DB  push        edi 
  9. 004113DC  lea         edi,[ebp-0CCh]
  10. 004113E2  mov         ecx,33h
  11. 004113E7  mov         eax,0CCCCCCCCh
  12. 004113EC  rep stos    dword ptr es:[edi]
  13.     char *c = NULL;
  14. 004113EE  mov         dword ptr [c],0
  15. c = plop();
  16. 004113F5  call        @ILT+420(_plop) (4111A9h)
  17. 004113FA  mov         dword ptr [c],eax
  18. c[1]='a';
  19. 004113FD  mov         eax,dword ptr [c]
  20. 00411400  mov         byte ptr [eax+1],61h
  21. }
  22. char *plop()
  23. {
  24. 00411390  push        ebp 
  25. 00411391  mov         ebp,esp
  26. 00411393  sub         esp,0C0h
  27. 00411399  push        ebx 
  28. 0041139A  push        esi 
  29. 0041139B  push        edi 
  30. 0041139C  lea         edi,[ebp-0C0h]
  31. 004113A2  mov         ecx,30h
  32. 004113A7  mov         eax,0CCCCCCCCh
  33. 004113AC  rep stos    dword ptr es:[edi]
  34.     return "lol";
  35. 004113AE  mov         eax,offset string "lol" (41563Ch)
  36. }


je compile, j'exécute, et aucune erreur d'accés mémoire illégal [:petrus dei]
les 2 dernieres lignes de main() sont très claires non ? [:kbchris]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1357620
antp
Super Administrateur
Champion des excuses bidons
Posté le 02-05-2006 à 11:01:31  profilanswer
 

anthomicro a écrit :

Ne pas utiliser de LIMIT et utiliser une requête qui retourne seulement le nombre de lignes à prendre (genre un between). Bref pour ça il te faut généralement un champ supplémentaire qui contiendra l'id de classement, et tu fais ta requête sur ça.


 
Sinon y a la solution que Joce avait postée, avec une temporary table pour que le limit ne se fasse que sur la clé. Ça marchait bien il me semble :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1357644
belgique
Posté le 02-05-2006 à 11:31:30  profilanswer
 

Tu dois quand même te taper tout l'index, ce qui ralentit sensiblement tout.

Message cité 1 fois
Message édité par belgique le 02-05-2006 à 11:31:40
mood
Publicité
Posté le 02-05-2006 à 11:31:30  profilanswer
 

n°1357653
fabien
Vive la super 5 !
Posté le 02-05-2006 à 11:36:39  profilanswer
 

Comment ca marche exactement la lecture d'un index ? Il charge l'index en memoire puis il recherche ce qu'il lui faut? ou bien, il peut selectionner une partie de l'index pour le mettre en memoire et ensuite selectionner ce qu'il lui faut ?
 


---------------
Découvre le HFRcoin ✈ - smilies
n°1357662
belgique
Posté le 02-05-2006 à 11:42:05  profilanswer
 

fabien a écrit :

Comment ca marche exactement la lecture d'un index ? Il charge l'index en memoire puis il recherche ce qu'il lui faut? ou bien, il peut selectionner une partie de l'index pour le mettre en memoire et ensuite selectionner ce qu'il lui faut ?

 


Ben l'index, c'est une structure de donnée qui permet un accès rapide à une donnée donnée. Genre l'enregistrement à l'id=8012. Il fait un parcours d'arbre et en un temps logarithmique par rapport au nombre de données, il te trouve ta clé.

 

Maintenant quand tu fais un limit x,1 sans condition et que tu tries sur l'index, ben il se tape tout l'index et te lit x clé avant d'arriver à destination :o

n°1357687
fabien
Vive la super 5 !
Posté le 02-05-2006 à 12:00:25  profilanswer
 

belgique a écrit :

Ben l'index, c'est une structure de donnée qui permet un accès rapide à une donnée donnée. Genre l'enregistrement à l'id=8012. Il fait un parcours d'arbre et en un temps logarithmique par rapport au nombre de données, il te trouve ta clé.
 
Maintenant quand tu fais un limit x,1 sans condition et que tu tries sur l'index, ben il se tape tout l'index et te lit x clé avant d'arriver à destination :o


ce que je veux savoir, c'est qu'est ce qui est mis en ram, parce que j'entend souvent dire que la fonction de recherche prend beaucoup de resource car l'index est très gros et que ca charge beaucoup en ram.
 
Donc, je voulais savoir si + un index est gros, + ca rame ? ou bien ca depend juste de la structure de la requete ?


---------------
Découvre le HFRcoin ✈ - smilies
n°1357697
Max Evans
Posté le 02-05-2006 à 12:11:02  profilanswer
 

fabien a écrit :

ce que je veux savoir, c'est qu'est ce qui est mis en ram, parce que j'entend souvent dire que la fonction de recherche prend beaucoup de resource car l'index est très gros et que ca charge beaucoup en ram.
 
Donc, je voulais savoir si + un index est gros, + ca rame ? ou bien ca depend juste de la structure de la requete ?


 
J'aurai tendance à dire qu'une recherche sur un gros forum, si elle est mal codée (Genre on parse la table entière des topics pour chercher un mot dans le titre), entraine un lock interminable de la table, au grand mécontentement de tous les autres membres qui visitent les pages :D


Message édité par Max Evans le 02-05-2006 à 12:11:12
n°1357726
anthomicro
Posté le 02-05-2006 à 13:06:38  profilanswer
 

Multinickname a écrit :

Voila  :D  
 
Et euh quelque chose du genre :
 

Code :
  1. WHERE post.id IN ('95666','95667','...','95686')


 
c'est efficace ?  :??:
 
PS : c'est fait comme ça chez IPB 2.0.x
 
EDIT : ca revient a peu près au même que BETWEEN non? Sauf que la on donne tous les champs au lieu de donner un intervalle?


 
Efficace ne va pas avec IPB ^^

n°1357808
Multinickn​ame
Ah bon...
Posté le 02-05-2006 à 14:18:48  profilanswer
 

:lol:

n°1357869
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 02-05-2006 à 15:34:28  profilanswer
 

belgique a écrit :

Ben l'index, c'est une structure de donnée qui permet un accès rapide à une donnée donnée. Genre l'enregistrement à l'id=8012. Il fait un parcours d'arbre et en un temps logarithmique par rapport au nombre de données, il te trouve ta clé.
 
Maintenant quand tu fais un limit x,1 sans condition et que tu tries sur l'index, ben il se tape tout l'index et te lit x clé avant d'arriver à destination :o


sauf que les indexs sont charges dans le key cache

n°1357886
antp
Super Administrateur
Champion des excuses bidons
Posté le 02-05-2006 à 15:52:23  profilanswer
 

belgique a écrit :

Tu dois quand même te taper tout l'index, ce qui ralentit sensiblement tout.


D'après le test fait par Joce ça n'avait pas l'air d'être trop ralenti :??: Puis ça évite de devoir gérer un champ de position de message.

Message cité 2 fois
Message édité par antp le 02-05-2006 à 15:53:20

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1357889
fabien
Vive la super 5 !
Posté le 02-05-2006 à 15:54:25  profilanswer
 

joce a écrit :

sauf que les indexs sont charges dans le key cache


ben alors ca se passe comment la lecture d'un index? il est charg entierement en ram? c'est quoi un key cache? pourquoi tu dis souvent que la recherche ca prend beaucoup de resource? t'as mal optimisé les requetes? ou c'est autre chose ?


---------------
Découvre le HFRcoin ✈ - smilies
n°1357906
belgique
Posté le 02-05-2006 à 16:31:54  profilanswer
 

joce a écrit :

sauf que les indexs sont charges dans le key cache


Ca change quelque chose au nombre de clé à parcourir? Même si c'est en mémoire.

 


antp a écrit :

D'après le test fait par Joce ça n'avait pas l'air d'être trop ralenti  :??:  Puis ça évite de devoir gérer un champ de position de message.

 


Oui mais ça ralentit quand même le fait de devoir se taper une grosse partie de l'index. Je me demande si la solution la plus simple n'est pas de rajouter de l'indirection mais ça reste à prouver :/

n°1357923
chaced
Posté le 02-05-2006 à 16:56:22  profilanswer
 

antp a écrit :

D'après le test fait par Joce ça n'avait pas l'air d'être trop ralenti :??: Puis ça évite de devoir gérer un champ de position de message.


 
En parlant de ça, vu le temp d'affichage d'un topic catastrophique (page 100 = 1seconde !)
 
J'ai voulu appliquer le coup des Temorary.
 
donc passage de  

Code :
  1. $resultat = mysql_query("SELECT A.post,A.posteur,A.user_id,A.texte,A.IP,A.dateheure,A.edttime,A.edtposteur,A.signature,A.nosmilie,A.first,A.quotepost,A.quotepostpage,
  2. A.deformation,B.nbposts,B.user_icq,B.user_msn,B.signature,B.citation,B.image,B.user_level,A.blokpost,A.blockedby
  3.                          FROM ".$config."_posts as A
  4.                          LEFT JOIN ".$config."_users as B
  5.                          ON (B.user_id = A.user_id)
  6.                          WHERE A.topic = '$topic'AND A.cat = '$cat'
  7.                          ORDER BY A.dateheure $ordre
  8.                          LIMIT $debut,$configuration_forum[nbpostspage]" )


 
en
 

Code :
  1. mysql_query("CREATE TEMPORARY TABLE buf SELECT post
  2.  FROM ".$config."_posts as A
  3. WHERE A.topic = '$topic' AND A.cat = '$cat'
  4. ORDER BY A.dateheure $ordre
  5.         LIMIT $debut,$configuration_forum[nbpostspage];" );
  6. $resultat = mysql_query("SELECT A.post,A.posteur,A.user_id,A.texte,A.IP,A.dateheure,A.edttime,A.edtposteur,A.signature,A.nosmilie,A.first,A.quotepost,A.quotepostpage,
  7. A.deformation,B.nbposts,B.user_icq,B.user_msn,B.signature,B.citation,B.image,B.user_level,A.blokpost,A.blockedby
  8.    FROM buf
  9.    LEFT JOIN ".$config."_posts as A
  10.                          USING (post)
  11.                          LEFT JOIN ".$config."_users as B
  12.                          ON (B.user_id = A.user_id)
  13.                          ORDER BY A.dateheure $ordre;" )
  14.                          or die("Erreur : ".__FILE__.":".__LINE__."<BR>".mysql_error());


 
Mais ça n'a pas l'air d'optimiser grand chose :D

Message cité 1 fois
Message édité par chaced le 02-05-2006 à 16:57:06

---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1357963
chaced
Posté le 02-05-2006 à 17:24:26  profilanswer
 

Oups, ça fait des légérs clonflits  :whistle:  


Depuis la version 3.22 de MySQL, vous pouvez utiliser le mot réservé TEMPORARY lorsque vous créez une table. Une table temporaire sera immédiatement effacée dès que la connexion se termine. Cela signifie que vous pouvez utiliser le même nom de table temporaire depuis deux connexions différentes sans risque de conflit entre les connexions. Vous pouvez aussi utiliser une table temporaire qui a le même nom qu'une table existante (la table existante est alors cachée tant que dure la table temporaire). En MySQL version 4.0.2 ou plus récent, vous avez juste à avoir le privilège CREATE TEMPORARY TABLES pour créer des tables temporaires.


 
Bon en générant un nom de table au pif ça marche mieux :)

Code :
  1. $buf='buf'.mt_rand();


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1358026
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 02-05-2006 à 19:02:37  profilanswer
 
n°1358037
fabien
Vive la super 5 !
Posté le 02-05-2006 à 19:11:50  profilanswer
 

fabien a écrit :

ben alors ca se passe comment la lecture d'un index? il est charg entierement en ram? c'est quoi un key cache? pourquoi tu dis souvent que la recherche ca prend beaucoup de resource? t'as mal optimisé les requetes? ou c'est autre chose ?


up :o


---------------
Découvre le HFRcoin ✈ - smilies
n°1358052
chaced
Posté le 02-05-2006 à 19:35:53  profilanswer
 

joce a écrit :

T'as MySQL 3 :??:


 
4.0.24.


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1358053
Max Evans
Posté le 02-05-2006 à 19:40:01  profilanswer
 

chaced a écrit :

En parlant de ça, vu le temp d'affichage d'un topic catastrophique (page 100 = 1seconde !)
 
J'ai voulu appliquer le coup des Temorary.
 
donc passage de  

Code :
  1. $resultat = mysql_query("SELECT A.post,A.posteur,A.user_id,A.texte,A.IP,A.dateheure,A.edttime,A.edtposteur,A.signature,A.nosmilie,A.first,A.quotepost,A.quotepostpage,
  2. A.deformation,B.nbposts,B.user_icq,B.user_msn,B.signature,B.citation,B.image,B.user_level,A.blokpost,A.blockedby
  3.                          FROM ".$config."_posts as A
  4.                          LEFT JOIN ".$config."_users as B
  5.                          ON (B.user_id = A.user_id)
  6.                          WHERE A.topic = '$topic'AND A.cat = '$cat'
  7.                          ORDER BY A.dateheure $ordre
  8.                          LIMIT $debut,$configuration_forum[nbpostspage]" )


 
en
 

Code :
  1. mysql_query("CREATE TEMPORARY TABLE buf SELECT post
  2.  FROM ".$config."_posts as A
  3. WHERE A.topic = '$topic' AND A.cat = '$cat'
  4. ORDER BY A.dateheure $ordre
  5.         LIMIT $debut,$configuration_forum[nbpostspage];" );
  6. $resultat = mysql_query("SELECT A.post,A.posteur,A.user_id,A.texte,A.IP,A.dateheure,A.edttime,A.edtposteur,A.signature,A.nosmilie,A.first,A.quotepost,A.quotepostpage,
  7. A.deformation,B.nbposts,B.user_icq,B.user_msn,B.signature,B.citation,B.image,B.user_level,A.blokpost,A.blockedby
  8.    FROM buf
  9.    LEFT JOIN ".$config."_posts as A
  10.                          USING (post)
  11.                          LEFT JOIN ".$config."_users as B
  12.                          ON (B.user_id = A.user_id)
  13.                          ORDER BY A.dateheure $ordre;" )
  14.                          or die("Erreur : ".__FILE__.":".__LINE__."<BR>".mysql_error());


 
Mais ça n'a pas l'air d'optimiser grand chose :D


 
Dans la première requête, si tu enlèves le ORDER BY, ça donne quoi ? Ca devrait être 100 000 fois mieux nan ? :??:
 
PS : Moui je sais, ce serait bête d'enlever le ORDER BY, mais dans la théorie, il est moisi :o

n°1358060
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 02-05-2006 à 19:58:55  profilanswer
 

heu si tu vires l'order by ca sert plus à rien :D
si c'est 100000 fois mieux sans l'order by, c'est que tu maitrises pas comment fonctionne un index :p

Message cité 1 fois
Message édité par joce le 02-05-2006 à 19:59:14
n°1358070
Max Evans
Posté le 02-05-2006 à 20:12:42  profilanswer
 

joce a écrit :

heu si tu vires l'order by ca sert plus à rien :D
si c'est 100000 fois mieux sans l'order by, c'est que tu maitrises pas comment fonctionne un index :p


Si t'as un index ordonné, si :fuck: :D
 
On verra bien sur la requête :o Chaced ? :D

n°1358074
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 02-05-2006 à 20:18:55  profilanswer
 

Max Evans a écrit :

Si t'as un index ordonné, si :fuck: :D
 
On verra bien sur la requête :o Chaced ? :D


si t'as un index ordonnée, l'order by ne change rien justement, il n'a pas besoin de faire de file sorting, il le prend dans l'ordre où ca arrive.

n°1358078
chaced
Posté le 02-05-2006 à 20:23:46  profilanswer
 

Ce n'est pas mon forum je précise, moi j'optimise juste :D
 
Et l'user a le choix d'afficher en chronologique ou pas, donc sans order by, exit cette fonction...


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1358109
Max Evans
Posté le 02-05-2006 à 21:02:19  profilanswer
 

joce a écrit :

si t'as un index ordonnée, l'order by ne change rien justement, il n'a pas besoin de faire de file sorting, il le prend dans l'ordre où ca arrive.


Voui justement :o Je pensais à un index auto-increment sans comblage de trou :D

n°1358126
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 02-05-2006 à 21:36:54  profilanswer
 

Max Evans a écrit :

Voui justement :o Je pensais à un index auto-increment sans comblage de trou :D


donc c'est quoi cette connerie sur l'order by que tu sors :p
et puis ca n'a rien à voir avec le fait qu'il soit auto-increment et qu'il ait des trous ou non :o

n°1358359
Max Evans
Posté le 03-05-2006 à 10:32:11  profilanswer
 

On va pas reprendre la discussion d'il y a 10 pages :o
Saches que j'ai raison, voilà :D

n°1358367
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 03-05-2006 à 10:37:17  profilanswer
 

Max Evans a écrit :

On va pas reprendre la discussion d'il y a 10 pages :o
Saches que j'ai raison, voilà :D


non tu as completement tord :jap:
Avec ou sans order by ca ne changera pas (ou peu) la vitesse de rapatriement des donnees si l'index est pose au bon endroit.
Et MySQL ne garantie absolument pas l'ordre dans lequel il va renvoyer les resultats, meme si en theorie un scan d'index le renvoie dans le bon ordre.

n°1358404
Max Evans
Posté le 03-05-2006 à 11:08:17  profilanswer
 

Si tu fais ça avec un index, il va te scanner entièrement ton index pour ensuite te le classer et pire si tu as un LIMIT qui s'applique à la toute fin.
 
Sans le ORDER BY, il te prend les enregistrements au pied levé [:spamafote]

n°1358479
fabien
Vive la super 5 !
Posté le 03-05-2006 à 11:48:07  profilanswer
 

fabien a écrit :

ben alors ca se passe comment la lecture d'un index? il est charg entierement en ram? c'est quoi un key cache? pourquoi tu dis souvent que la recherche ca prend beaucoup de resource? t'as mal optimisé les requetes? ou c'est autre chose ?


2 nd up :o
 
joce, si tu veux pas repondre, dis le :o


---------------
Découvre le HFRcoin ✈ - smilies
n°1358534
belgique
Posté le 03-05-2006 à 12:30:32  profilanswer
 

Max Evans a écrit :

Si tu fais ça avec un index, il va te scanner entièrement ton index pour ensuite te le classer et pire si tu as un LIMIT qui s'applique à la toute fin.

 

Sans le ORDER BY, il te prend les enregistrements au pied levé  [:spamafote]

 


L'index permet justement de faire des order by rapide, il ne va pas devoir se taper tout l'index. Maintenant avec un méchant limit, ça va lui prendre plus de temps.

n°1358891
Max Evans
Posté le 03-05-2006 à 17:24:46  profilanswer
 

belgique a écrit :

L'index permet justement de faire des order by rapide, il ne va pas devoir se taper tout l'index. Maintenant avec un méchant limit, ça va lui prendre plus de temps.


Bah il te fait le ORDER BY sur tout le champ indexé quand même :??: Il est obligé de tout parser ... Il va pas s'arrêter au 3/4 de l'index, tout ordonner, puis laisser le 1/4 restant sur carreau, non ordonné :??:

Message cité 1 fois
Message édité par Max Evans le 03-05-2006 à 17:25:21
n°1358892
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 03-05-2006 à 17:25:25  profilanswer
 

Max Evans a écrit :

Si tu fais ça avec un index, il va te scanner entièrement ton index pour ensuite te le classer et pire si tu as un LIMIT qui s'applique à la toute fin.

non justement, il ne fait ca que si il a besoin de faire du file sorting.
Donc c'est bien ce que je pensais, tu ne sais pas utiliser correctement les indexs pour optimiser les order by :o

n°1358896
Max Evans
Posté le 03-05-2006 à 17:27:03  profilanswer
 

joce a écrit :

non justement, il ne fait ca que si il a besoin de faire du file sorting.
Donc c'est bien ce que je pensais, tu ne sais pas utiliser correctement les indexs pour optimiser les order by :o


Mah, comment c'est possible :o
 
Si je fais :
SELECT machin FROM matable ORDER BY id DESC
 
J'ai bien entendu un index sur 'id'.
 
Il va pas me parser tout l'index pour m'ordonner mon champ indexé ? :??:

n°1358900
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 03-05-2006 à 17:28:54  profilanswer
 

fabien a écrit :

2 nd up :o
 
joce, si tu veux pas repondre, dis le :o


ca prend des ressources parce que y a enormement de donnee c'est tout :D
et des que tu fais des ET, tu degustes parce que t'es oublie de chopper tous les resultats avant d'appliquer les jointures.
Pour le Key Cache, les blocks sont gardes en memoire en fonction de leur utilisation (que tu peux rafiner avec MySQL >= 4.1).
Ils sont charger au fur et a mesure des besoins, sauf si tu fais explicitement un PRELOAD de l'index auquel cas il est stocke entierement en RAM.
 
 

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  355  356  357  ..  486  487  488  489  490  491

Aller à :
Ajouter une réponse
 

Sujets relatifs
question avec les forums phpbb2[php] trouver la premier place ou inserer un enregistrement (résolu)
Forums phpBBQui connait l'algo du Passticket et sa mise en place en VB ?
[Merise] Mise en place d'un MCDFocus mal placé....
[Blabla/Prog] Les développeurs foromeurs sont-ils des feignasses?Mise en place d'un formulaire CGI
forums création de site internetJava - Mise en place d'une api (Servlet)
Plus de sujets relatifs à : les développeurs de forums, les 3/4 des forums sont down /o\


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)