 |
Nainwak's World Combattez des nains de jardins !
|
| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
Gatts Serial Codeur.
Inscrit le: 19 Sep 2002 Messages: 1470
|
Posté le: Jeu 22 Jan, 2004 15:53 Sujet du message: |
|
|
Une explication possible.
Les nains sont sortis de la bdd par ordre de distance, ensuite il n'y a pas d'autre tri, c'est donc l'ordre dans lequel ils sont rentrés dans la table, donc en toute logique l'id.
Supposons que quelquechose vienne troubler cet ordre, comme une optimisation de la table, des suppressions défénitives de nain (i.e. même plus dans la table), les nouveaux inscrits vont alors se poser dans ces places vides et non à la fin de la table.
D'où cette incohérence à l'affichage.
Essayer de voir la table comme un disque dur fragmenté en fait, lorsque l'on rajoute des trucs, ça vient d'abord remplir les trous.
Enfin je ne suis pas certain de mon explication, mais c'est celle qui me semble la plus plausible. |
|
| Revenir en haut de page |
|
 |
Miss World Nain-stallé(e)

Inscrit le: 14 Déc 2003 Messages: 286 Localisation: ici et là...
|
Posté le: Jeu 22 Jan, 2004 16:04 Sujet du message: |
|
|
| cette réponse est plausible... |
|
| Revenir en haut de page |
|
 |
Rambo Nain(e) à l'aise

Inscrit le: 27 Mar 2003 Messages: 111 Localisation: Sous les Pins
|
Posté le: Jeu 22 Jan, 2004 18:54 Sujet du message: |
|
|
/me essaie de reflechir
c plausible en effet pour les nouvos nains ...
mais pour les autres le classement par id correspond a l'ancieneté
les nains les plus anciens ont l'id le plus faible
donc un classement par id signifierai un classement par ancieneté or ce n'est pas le cas
a moins que l'hibernation rentre en compte ....
mais alors là ( d'apres mon expression préférée )
on a pas le cul sortie des ronses
m'enfi le smimblick avance 8) [/i] |
|
| Revenir en haut de page |
|
 |
Ethaniel Nain-tégré(e)

Inscrit le: 29 Sep 2003 Messages: 486 Localisation: Zauer, capitale du royaume de Rainwan
|
Posté le: Ven 23 Jan, 2004 15:10 Sujet du message: Nuances |
|
|
| Gatts a écrit: | Une explication possible.
Les nains sont sortis de la bdd par ordre de distance, ensuite il n'y a pas d'autre tri, c'est donc l'ordre dans lequel ils sont rentrés dans la table, donc en toute logique l'id.
Supposons que quelquechose vienne troubler cet ordre, comme une optimisation de la table, des suppressions défénitives de nain (i.e. même plus dans la table), les nouveaux inscrits vont alors se poser dans ces places vides et non à la fin de la table.
D'où cette incohérence à l'affichage.
Essayer de voir la table comme un disque dur fragmenté en fait, lorsque l'on rajoute des trucs, ça vient d'abord remplir les trous.
Enfin je ne suis pas certain de mon explication, mais c'est celle qui me semble la plus plausible. | D'après les tests que je viens d'effectuer, cette explication est à quelques nuances près la bonne.
Tout d'abord, les optimisations et suppressions ne modifient pas l'ordre de la table.
Lorsqu'un nain est supprimé, ça fait un trou dans la table, trou dans lequel se placera un nouvel inscrit.
Par contre, son ID ne sera pas celui du nain qu'il remplace, mais bien un nouvel ID, donc le plus grand de toute la table (au moment de la création, du moins).
Lorsque le table est optimisée, tous les trous non encore bouchés sont simplement effacés.
Donc, pour bien faire, la table devrait être optimisée à chaque suppression, pour qu'il n'y ait jamais aucun trou dans lequel pourrait s'enregistrer un nouveau nain.
Actuellement, de nombreux trous sont de nouveau occupés, d'où les observations rapportées ici.
Pour arranger ça, il faudrait tout d'abord optimiser la table pour effacer les trous, puis réordonner la table par ID.
Et ensuite, pour la maintenance, optimiser la table à chaque suppression.
Voici la preuve en image du fait que même s'il bouche un trou, un nouveau nain a une ID toute récente.
C'est ce que je vois sur ma case : | Citation: | mep(15, 'Vous voyez 40 nain(s) de jardin.');
mep(7);
mep(15, gavat(23577, 'perso/23577.gif','MadReaper','COPS',3025,2,'Facteur (nain-posteur)',0,12,2,'bien peu me recherchent, mais tous me rencontrent au bout du chemin;pour la moisson des âmes. ceux qui fleurtent avec moi sèment les germes de la folie et mon étreinte est froide bien qu\'inéluctable','o','', 'n'),evc(12,2));
mep(7);
mep(15, gavat(43820, 'choix/PHPavatar023.gif','piti truc','',0,0,'Nain-déci',0,12,2,'(pas de description)','o','', 'n'),evc(12,2));
mep(7);
mep(15, gavat(29377, 'perso/29377.gif','Castor Troy','FLMNH',2580,2,'Moucheron (nain-secte)',0,12,2,'PORCHERIE ! "Anarchie en Chiraquie"','o','', 'n'),evc(12,2));
mep(7); |
@++ |
|
| Revenir en haut de page |
|
 |
Frór Nain-doré(e)

Inscrit le: 12 Déc 2003 Messages: 1956 Localisation: monde des #RAMPANT
|
Posté le: Ven 23 Jan, 2004 15:36 Sujet du message: |
|
|
En mysql, une optimisation fait un truc du genre :
| Code: |
+--+--+--+--+--+--+--+--+--+--+
| 1| 2| 3| 4| 5| 6| 7| 8| 9|10|
+--+--+--+--+--+--+--+--+--+--+
Maintenant, le nain 3 disparait (15 jours d'inactivité totale)
+--+--+--+--+--+--+--+--+--+--+
| 1| 2| | 4| 5| 6| 7| 8| 9|10|
+--+--+--+--+--+--+--+--+--+--+
Puis, y'a le nain 11 qui se rajoute. (C'est le multi-nain du 7, mais chut)
+--+--+--+--+--+--+--+--+--+--+--+
| 1| 2| | 4| 5| 6| 7| 8| 9|10|11|
+--+--+--+--+--+--+--+--+--+--+--+
Puis, le joueur du nain 7 en avait marre de son premier nain, il décide de rester 15 jours sans le toucher...
+--+--+--+--+--+--+--+--+--+--+--+
| 1| 2| | 4| 5| 6| | 8| 9|10|11|
+--+--+--+--+--+--+--+--+--+--+--+
Mais avec ce système, on perd de la place ... Il y a toujours un trou à la place du nain 3.
Donc, lorsqu'on optimise la table, pour en plus, optimiser le temps d'optimisation, on prend donc le dernier en place, et on le met au premier trou, et on libère l'espace du dernier !
+--+--+--+--+--+--+--+--+--+--+
| 1| 2|11| 4| 5| 6| | 8| 9|10|
+--+--+--+--+--+--+--+--+--+--+
Puis, on continue, parce qu'il y a encore des trous
+--+--+--+--+--+--+--+--+--+
| 1| 2|11| 4| 5| 6|10| 8| 9|
+--+--+--+--+--+--+--+--+--+
Voilà ! Le nain 11 est avant le nain 4, mais il garde son numéro 11. Ceci ne se produit QUE lors d'une optimisation de table. Parce que si on devait trouver le premier trou pour installer le nain 11, par exemple, cela prendrait trop de temps pour MySQL. |
Voilà, ce message complète en fait celui d'Ethaniel, qui m'a paru un peu complexe pour des personnes n'étant pas analyste ...
Nous nous trouvons en pleine algorithmique, ma branche préférée dans l'informatique  |
|
| Revenir en haut de page |
|
 |
Ethaniel Nain-tégré(e)

Inscrit le: 29 Sep 2003 Messages: 486 Localisation: Zauer, capitale du royaume de Rainwan
|
Posté le: Ven 23 Jan, 2004 18:59 Sujet du message: Bizarre ... |
|
|
| Frór a écrit: | | Voilà, ce message complète en fait celui d'Ethaniel, qui m'a paru un peu complexe pour des personnes n'étant pas analyste ... | Alors là, c'est vraiment bizarre, parce que tu as mis en image ne correspond pas à ce que j'ai décrit !!!
Et pourtant, je n'ai fait que décrire ce que j'avais observé de mes expérimentations sur MySQL (que je viens de refaire à l'instant)...
Il faudra que l'on m'explique, là, surtout que ce que tu décris est bien plus efficace que ce que j'observe !
| Citation: | Nous nous trouvons en pleine algorithmique, ma branche préférée dans l'informatique  | Moi aussi, j'aime bien ça !
Mais je préfère amplement l'Assembleur !!!
Bon, tu m'excuseras, mais je reprends tes dessins tout faits ...
D'ailleurs, j'aurais dû les faire dès le premier post, surtout qu'un de mes profs nous dit de toujours mettre plein de dessins dans les comptes-rendus de TP pour expliquer plus clairement ...
| Code: | +--+--+--+--+--+--+--+--+--+--+
| 1| 2| 3| 4| 5| 6| 7| 8| 9|10|
+--+--+--+--+--+--+--+--+--+--+
Maintenant, le nain 3 disparait (15 jours d'inactivité totale)
+--+--+--+--+--+--+--+--+--+--+
| 1| 2| | 4| 5| 6| 7| 8| 9|10|
+--+--+--+--+--+--+--+--+--+--+
Puis, y'a le nain 11 qui se rajoute. (C'est le multi-nain du 7, mais chut)
Il va donc se placer dans le trou laissé vacant par le 3, tout en prenant une nouvelle ID (11).
Le nain 11 est avant le nain 4, mais il garde son numéro 11.
+--+--+--+--+--+--+--+--+--+--+
| 1| 2|11| 4| 5| 6| 7| 8| 9|10|
+--+--+--+--+--+--+--+--+--+--+
Puis, le joueur du nain 7 en avait marre de son premier nain, il décide de rester 15 jours sans le toucher...
+--+--+--+--+--+--+--+--+--+--+
| 1| 2|11| 4| 5| 6| | 8| 9|10|
+--+--+--+--+--+--+--+--+--+--+
Mais avec ce système, on perd de la place ... Il y a toujours un trou non encore bouché à la place du nain 7.
Donc, lorsqu'on optimise la table, on la scanne et on copie chaque case non vide dans une table temporaire, qui deviendra à la fin de l'optimisation la table finale, afin d'enlever les trous sans changer l'ordre.
+--+--+--+--+--+--+--+--+--+
| 1| 2|11| 4| 5| 6| 8| 9|10|
+--+--+--+--+--+--+--+--+--+ |
| Citation: | [...] si on devait trouver le premier trou pour installer le nain 11, par exemple, cela prendrait trop de temps pour MySQL.
[...] pour en plus, optimiser le temps d'optimisation, on prend donc le dernier en place, et on le met au premier trou, et on libère l'espace du dernier ! | Je suis tout-à-fait d'accord avec toi sur le fait que ce soit mieux, donc je ne comprends pas du tout pourquoi je n'ai pas ça chez moi ...
J'ai le pack EasyPHP 1.7, contenant :
- Apache 1.3.27
- PHP 4.3.3
- phpMyAdmin 2.5.3
- MySQL 4.0.15
A qui la faute ?
@++ |
|
| Revenir en haut de page |
|
 |
Frór Nain-doré(e)

Inscrit le: 12 Déc 2003 Messages: 1956 Localisation: monde des #RAMPANT
|
Posté le: Ven 23 Jan, 2004 19:27 Sujet du message: |
|
|
Ceci est évidemment pris en TRES gros ! Le principe fondamental est le même... Je pense qu'il y a une sorte de mini-optimiseur à chaque requête qui fait quelques petits mouvements, malgré toi, histoire que les données les plus demandées soient les plus facilement atteignibles (suis vraiment pas sur de ce mot) pour le programme MySQL ! Depuis leur début, ils ont toujours cherché à optimiser le temps d'exécution d'une requête. Donc, l'algorithme que j'ai présenté présente cela, mais SANS leur petites optimisations internes !
De toutes façons, pour les plus motivés et les plus aventureux, le code source est toujours dispo sur le site officiel  |
|
| Revenir en haut de page |
|
 |
AlyumdrA Nain-doré(e)

Inscrit le: 17 Mar 2003 Messages: 3085 Localisation: Dans mon Chateau au pied de l'Oasis !!!
|
Posté le: Lun 26 Jan, 2004 14:52 Sujet du message: |
|
|
| Aie ma tete !!! c'est dangeureu vos post la !!! |
|
| Revenir en haut de page |
|
 |
Loooool3 Nain-tégré(e)

Inscrit le: 24 Nov 2003 Messages: 715 Localisation: Bah si vous pouviez m'aider a retrouver le chemin de mon nid...
|
Posté le: Lun 26 Jan, 2004 16:50 Sujet du message: |
|
|
| fo arreter tout là les gars !!! Tout ca pour un ordre de détection faussé arf.... Stop the Drink attitude ! |
|
| Revenir en haut de page |
|
 |
Foxpapa Nain-tégré(e)

Inscrit le: 10 Mai 2003 Messages: 640 Localisation: Sur le disque monde
|
Posté le: Lun 26 Jan, 2004 17:44 Sujet du message: |
|
|
oui pareil pour moi j'ai un 43000 avant un 15000
au passage on vois ou son ID ?
oula un 295 : nain! c'est un vieux celui la |
|
| Revenir en haut de page |
|
 |
Rambo Nain(e) à l'aise

Inscrit le: 27 Mar 2003 Messages: 111 Localisation: Sous les Pins
|
Posté le: Mer 04 Fév, 2004 10:31 Sujet du message: |
|
|
| Foxpapa a écrit: |
au passage on vois ou son ID ?
|
viens sur ma case je te le donnerais  |
|
| Revenir en haut de page |
|
 |
Phénix Nain-dispensable

Inscrit le: 27 Nov 2002 Messages: 1218 Localisation: Partout où un feu est allumé, plus trop à Lyon, mais à Paris
|
Posté le: Lun 09 Fév, 2004 13:54 Sujet du message: |
|
|
lol en gros :
- L'affichage des nains est tel qu'il est c'est tout.
- Il peut arriver qu'il change, si une optimisation de la table est faite.
- Si vous voulez qu'il change ben ne comptez pas dessus
- Si ça vous emm***e d'être toujours en premier sur la liste,
+ soit faut attendre qu'un nain plus vieux que vous ne vienne sur votre case (et encore c'est po obligé selon l'optimisation)
+ soit faut attendre qu'un nain plus jeune vienne sur votre case (et encore c'est po obligé selon l'optimisation)
+ soit vous êtes pas veinard
+ soit vous vous faites tuer pour ne plus être sur la case (encore que vous pouvez bouger lol)
c'est ça ?  |
|
| Revenir en haut de page |
|
 |
Albert Nain-stallé(e)

Inscrit le: 10 Jan 2004 Messages: 207
|
Posté le: Lun 09 Fév, 2004 15:00 Sujet du message: |
|
|
Eblouissant
 |
|
| Revenir en haut de page |
|
 |
Farente Nain-doré(e)

Inscrit le: 04 Oct 2003 Messages: 1936 Localisation: Dans le maquis parisien...
|
Posté le: Lun 09 Fév, 2004 17:55 Sujet du message: |
|
|
| Loooool3 a écrit: | | fo arreter tout là les gars !!! Tout ca pour un ordre de détection faussé arf.... Stop the Drink attitude ! |
Non non franchement moi ça m'intéresse ces trucs là! Quand c'est appliqué a nainwak c'est beaucoup mieux et la encore j'ai appris un truc... Si un jour je me remet a faire des sites ( c'est fini l'HTML depuis longtemps, il a été tué par le Php) c'est sur que je ferais du Php donc bah la je vois un peu comment ça fonctionne et tout j'apprend des trucs franchements c'est cool en plus les explications d'Ethaniel sont toujours bonnes, et parfois facilement compréhensibles.
Fror aussi ton truc c'est d'une clarté limpide on peut pas faire mieux...
Edith :
Je voulais signaler donc au passage dans ta détection tu peux afficher la source et voir l'ID des autres, comment tu fais pour voir le tien ? Et est-ce réellement les ID ?????
Car y a t'il eu 48000 nains ???? Je vois un mec son ID , c'est 47501(il est niveau 2)... Donc il y a bien eu 47500 nains en tout ? Car en effet on peut voir que c'est un numéro propre a chaque nain , mais ce nombre la c'est quand même impressionant... |
|
| Revenir en haut de page |
|
 |
Musclenain Nain-dispensable

Inscrit le: 24 Juil 2003 Messages: 915 Localisation: Au Nord la semaine, au Sud le Week end
|
Posté le: Lun 09 Fév, 2004 20:25 Sujet du message: |
|
|
Non non je te rassure, c'est bien le n° ID. Tous les anciens joueurs pourront te le confirmer et il y a bel et bien plus de 47000 inscrits depuis les débuts de Nainwak. Bientot 50000, qui l'aurait cru...
Nainwak, quand tu nous tiens. |
|
| Revenir en haut de page |
|
 |
Phénix Nain-dispensable

Inscrit le: 27 Nov 2002 Messages: 1218 Localisation: Partout où un feu est allumé, plus trop à Lyon, mais à Paris
|
Posté le: Mar 10 Fév, 2004 10:37 Sujet du message: |
|
|
ouais finalement, il n'ya pas tant de pertes que çà !!
on est 10000 nains valides, donc en gros 1/5 ... donc ceux qui jouent apprécient ... parce-que si on tiens compte de l'époque (il doit y en avoir encore qq uns mais moins) où les multinains poussaient comme des nains de jardin .... et puis tous ceux qui comme moi on refait un nain soit dès le début (moi ct au bout de 2 mois) soit pour changer de RP ....
nan vraiment, je trouve ça pas mal ... 8) |
|
| Revenir en haut de page |
|
 |
saku Propriété d'Haiken

Inscrit le: 20 Mai 2003 Messages: 1552 Localisation: Courbevoie (92)
|
Posté le: Mar 10 Fév, 2004 11:21 Sujet du message: |
|
|
les multis continuent à pousser comme des nains de jardin  |
|
| Revenir en haut de page |
|
 |
|
|
Vous pouvez poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|
|