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

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  153  154  155  ..  486  487  488  489  490  491
Auteur Sujet :

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

n°807472
skylight
Made in France.
Posté le 27-07-2004 à 12:01:11  profilanswer
 

Reprise du message précédent :

karamilo a écrit :

En général, une jointure évite une requete dans une boucle

Pas forcément.
 
Prends un forum avec des sous-catégories. Trouve moi un moyen d'afficher les catégories et sous catégories (comme phpBB, pas comme ici) - c'est à dire tous les posteurs de toutes les dernières catégories - en utilisant une jointure.... à moins d'avoir un truc crade ou de débutant, c'est pas faisable :D

mood
Publicité
Posté le 27-07-2004 à 12:01:11  profilanswer
 

n°807476
gizmo
Posté le 27-07-2004 à 12:03:19  profilanswer
 

skylight a écrit :

Et le lock de 2 tables dont l'une souvent appellée...


Euh... une jointure c'est utilisé la plupart du temps dans une sélection. Donc si tu as un lock à cause d'une sélection, c'est qu'il y a un petit soucis.

n°807483
karamilo
Posté le 27-07-2004 à 12:07:09  profilanswer
 

skylight a écrit :

Pas forcément.
 
Prends un forum avec des sous-catégories. Trouve moi un moyen d'afficher les catégories et sous catégories (comme phpBB, pas comme ici) - c'est à dire tous les posteurs de toutes les dernières catégories - en utilisant une jointure.... à moins d'avoir un truc crade ou de débutant, c'est pas faisable :D


J'aimerais bien voir comment tu fais ...
 
edit: d'ailleurs je vois pas le problème avec une jointure mais bon.


Message édité par karamilo le 27-07-2004 à 12:08:10
n°807515
skylight
Made in France.
Posté le 27-07-2004 à 12:30:43  profilanswer
 

gizmo a écrit :

Euh... une jointure c'est utilisé la plupart du temps dans une sélection. Donc si tu as un lock à cause d'une sélection, c'est qu'il y a un petit soucis.


Quand tu sélectionnes des données d'une table OK.
Mais quand tu veux prendre des données sur 2 tables à la fois, le pointeur fichier de la deuxième table doit être synchronisé avec la première table, afin de récuperer les données sur l'axe de jointure.
C'est pour ça que la table se locke avant, fait la jointure et se délocke.
Si ya du monde derrière qui veut interroger cette table, ils attendent.

n°807516
Rainbow_Ef​reet
Posté le 27-07-2004 à 12:31:07  profilanswer
 

esox_ch, il vaut mieux utiliser des compteurs plutot que de faire des counts,il en va de meme pour les dernier messages il vaut mieux stocker le dernier ID plutot que de selectionner un max, meme si ça dénature certains principes

n°807520
skylight
Made in France.
Posté le 27-07-2004 à 12:32:23  profilanswer
 

karamilo a écrit :

J'aimerais bien voir comment tu fais ...
 
edit: d'ailleurs je vois pas le problème avec une jointure mais bon.


 
Affiche moi en 1 requete ceci :  
 
Forum 1
 - cat1 dernier message blablabla @ telle heure par pseudo
 - cat2 " "  "               "                "
 - cat3  "                      "                 "
Forum 2
 - cat1 "              "               "           "
 - cat2 "                    "              "
Forum 3
 - cat1 "      "                    "
 

n°807523
Rainbow_Ef​reet
Posté le 27-07-2004 à 12:33:03  profilanswer
 

Skylight que tu bloque ta table avec une jointure ou avec un requete seule ça change quoi ? elle est tjrs bloqué non ?

n°807525
skylight
Made in France.
Posté le 27-07-2004 à 12:33:47  profilanswer
 

Oui mais en 1 requete le pointeur de fichier n'a pas a être synchronisé avec une autre table du coup c'est très rapide, et le lock quasi-inexistant...


Message édité par skylight le 27-07-2004 à 12:34:00
n°807531
drasche
Posté le 27-07-2004 à 12:35:24  profilanswer
 

ptain le gain que j'ai sur l'insertion multirows [:atsuko]
 
Je planifie une nouvelle release de DaFloodMachine ce soir.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°807540
Rainbow_Ef​reet
Posté le 27-07-2004 à 12:37:14  profilanswer
 

ok je comprend mieux,
donc tu interroge deux record sets sans jointure au lieu d'un record set qui lie deux tables mais le deuxieme va devoir se réexecuter d'autant d'occurences qu'en contient le premier donc au niveau temps n'est ce pas pire?
Je vous fait pars de mon experience personnelle sur ma page d'accueil j'affiche les rubriques et leurs forums respectifs :
1ere methode 1 seule requete avec jointure très rapide
2eme methode 1requete avec une 2eme dans le while qui prend les forum de chaques rubs et c'était deux fois plus lent


Message édité par Rainbow_Efreet le 27-07-2004 à 12:38:36
mood
Publicité
Posté le 27-07-2004 à 12:37:14  profilanswer
 

n°807543
Profil sup​primé
Posté le 27-07-2004 à 12:39:04  answer
 

skylight a écrit :

Pas forcément.
 
Prends un forum avec des sous-catégories. Trouve moi un moyen d'afficher les catégories et sous catégories (comme phpBB, pas comme ici) - c'est à dire tous les posteurs de toutes les dernières catégories - en utilisant une jointure.... à moins d'avoir un truc crade ou de débutant, c'est pas faisable :D


 
j'ai fais ca moi :) tout a fait faisable
look ma page d'index :
une seule requete pour générer toute mes colonnes(hormis le nom des cat c une requete a part)
http://system-dede.com/forum/
j'ai 4 jointures et en plus des requetes additionnelles, bah 11ms de temps de generation c'est pas mal(dépend de la charge)

n°807545
esox_ch
Posté le 27-07-2004 à 12:39:20  profilanswer
 

rainbow_efreet a écrit :

esox_ch, il vaut mieux utiliser des compteurs plutot que de faire des counts,il en va de meme pour les dernier messages il vaut mieux stocker le dernier ID plutot que de selectionner un max, meme si ça dénature certains principes


 
C'est le systeme que j'utilisait dans la version précédente de mon forum, et etant donné que ca me demandait des multitude de requetes pour mettre a jour les compteurs & co j'avais pensser que ce serais mieux d'enlever tout ca ..

n°807546
fabien
Vive la super 5 !
Posté le 27-07-2004 à 12:39:31  profilanswer
 

drasche a écrit :

ptain le gain que j'ai sur l'insertion multirows [:atsuko]
 
Je planifie une nouvelle release de DaFloodMachine ce soir.


il est de combien le gain ? [:dawa]


---------------
Découvre le HFRcoin ✈ - smilies
n°807553
skylight
Made in France.
Posté le 27-07-2004 à 12:45:10  profilanswer
 

esox_ch a écrit :

C'est le systeme que j'utilisait dans la version précédente de mon forum, et etant donné que ca me demandait des multitude de requetes pour mettre a jour les compteurs & co j'avais pensser que ce serais mieux d'enlever tout ca ..

Garde dans l'esprit que sur 100 requêtes, tu as 90 SELECT et 10 INSERT ou UPDATE... ;)

n°807554
karamilo
Posté le 27-07-2004 à 12:45:21  profilanswer
 

Skylight : soit tu as des champs pour enregistrer l'id de la derniere reponse et c'est déjà fini, soit tu fais des sous requetes ...
 
Je serais curieux de voir ta méthode tiens ...


Message édité par karamilo le 28-07-2004 à 14:59:26
n°807555
gizmo
Posté le 27-07-2004 à 12:45:46  profilanswer
 

skylight a écrit :

Quand tu sélectionnes des données d'une table OK.
Mais quand tu veux prendre des données sur 2 tables à la fois, le pointeur fichier de la deuxième table doit être synchronisé avec la première table, afin de récuperer les données sur l'axe de jointure.
C'est pour ça que la table se locke avant, fait la jointure et se délocke.
Si ya du monde derrière qui veut interroger cette table, ils attendent.


mauvais DBMS, changer DBMS [:spamafote]

n°807556
Rainbow_Ef​reet
Posté le 27-07-2004 à 12:46:15  profilanswer
 

esox_ch, oui ça demande de la gestion de gerer des totaux et des dernier ID (verification et decrementation lors des suppression etc) mais le count tourne bien car ton forum dois être assez petit.Imagine un count des tes messages pour CHAQUES sujet dans une table de post aussi grosse que celle de ce forum ...

n°807557
esox_ch
Posté le 27-07-2004 à 12:46:59  profilanswer
 

skylight a écrit :

Garde dans l'esprit que sur 100 requêtes, tu as 90 SELECT et 10 INSERT ou UPDATE... ;)


 
Excuse moi je comprend pas trop en quoi ca change qqch?
 

Citation :

esox_ch, oui ça demande de la gestion de gerer des totaux et des dernier ID (verification et decrementation lors des suppression etc) mais le count tourne bien car ton forum dois être assez petit.Imagine un count des tes messages pour CHAQUES sujet dans une table de post aussi grosse que celle de ce forum ...


 
J'ai encore un peu de lacunes (enfin pas mal de lacunes) en SQL et optimisation ... je penssais que quoiqu'on mette dans la requette, 1 requette sera toujours + rapide que 2 requettes ...


Message édité par esox_ch le 27-07-2004 à 12:48:34
n°807569
skylight
Made in France.
Posté le 27-07-2004 à 12:53:57  profilanswer
 

karamilo a écrit :

Skylight : soit tu as des champs pour enregistrer l'id de la derniere reponse et c'est déjà fini, soit tu fais des sous requetes ...
 
Je serais curieux de voir ta méthode tiens ...


 
En 1 requete tu m'affiche tout ca toi ?
 
Forum 1  
 - cat1 dernier message blablabla @ telle heure par pseudo  
 - cat2 " "  "               "                "  
 - cat3  "                      "                 "  
Forum 2  
 - cat1 "              "               "           "  
 - cat2 "                    "              "  
Forum 3  
 - cat1 "      "                    "  
 
 
 
 
:??:
 
Si oui, j'aimerai bien voir la gueule de la query ...
 
sachant que moi, pour chaque catégorie (pas forum), je stocke en plus de l'id du dernier message, le pseudo, l'heure, le topic ...
 
 
mais affiche tout un index en 1 requete ...

n°807570
skylight
Made in France.
Posté le 27-07-2004 à 12:54:47  profilanswer
 

gizmo a écrit :

mauvais DBMS, changer DBMS [:spamafote]


 
Il me semble avoir lu cela sur la doc de MySQL.

n°807572
skylight
Made in France.
Posté le 27-07-2004 à 12:55:36  profilanswer
 

esox_ch a écrit :

Excuse moi je comprend pas trop en quoi ca change qqch?


 
En termes de vitesse et de charge, les SELECT (en règle générale :o ) sont moins lourds et + rapides que les UPDATES ou INSERT.

n°807575
karamilo
Posté le 27-07-2004 à 12:58:38  profilanswer
 

Je viens de regarder la doc, j'ai pas trouvé de trucs parlant d'un lock quelconque ou d'un probleme de rapidité avec des jointures ...
 
Voila une version toute conne si l'id de la derniere reponse est enregistrée pour chaque cat :
SELECT nom_forum,nom_cat,rep_id,membre_id,pseudo,... FROM forum
LEFT JOIN cat ON cat_forum_id=forum_id
LEFT JOIN reponses ON rep_id=cat_derniere_rep_id
LEFT JOIN membre ON membre_id=rep_membre_id

n°807579
drasche
Posté le 27-07-2004 à 13:04:32  profilanswer
 

Fabien a écrit :

il est de combien le gain ? [:dawa]


je refais un bench ce soir et je vous dis ça ;)
j'avais 40 secondes comme temps de référence chez moi pour la version 2 (et 100 secondes pour la v1). La version 2.1 met 25 secondes sur ma machine boulot (plus lente) sur une DB hostée sur une autre machine.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°807580
gizmo
Posté le 27-07-2004 à 13:05:22  profilanswer
 

skylight a écrit :

Il me semble avoir lu cela sur la doc de MySQL.


C'est possible qu'ils gère cela comme ça, je n'ai pas lu entièrement leur doc. Mais si c'est le cas, c'est la preuve d'une mauvaise conception de leur gestion des lock. Un lock ne devrait être mis sur une table que lors de la modification de celle-ci, et encore. Dans la plupart des cas, un DBMS doit pouvoir s'en sortir avec les transactions et les write-ahead.

n°807582
skylight
Made in France.
Posté le 27-07-2004 à 13:06:12  profilanswer
 

gizmo a écrit :

C'est possible qu'ils gère cela comme ça, je n'ai pas lu entièrement leur doc. Mais si c'est le cas, c'est la preuve d'une mauvaise conception de leur gestion des lock. Un lock ne devrait être mis sur une table que lors de la modification de celle-ci, et encore. Dans la plupart des cas, un DBMS doit pouvoir s'en sortir avec les transactions et les write-ahead.


 
To decide whether you want to use a storage engine with row-level locking, you will want to look at what your application does and what mix of select and update statements it uses. For example, most Web applications do lots of selects, very few deletes, updates based mainly on key values, and inserts into some specific tables. The base MySQL MyISAM setup is very well tuned for this.  
 
Table locking in MySQL is deadlock-free for storage engines that use table-level locking. Deadlock avoidance is managed by always requesting all needed locks at once at the beginning of a query and always locking the tables in the same order.  
 
The table-locking method MySQL uses for WRITE locks works as follows:  
 
If there are no locks on the table, put a write lock on it.  
Otherwise, put the lock request in the write lock queue.  
The table-locking method MySQL uses for READ locks works as follows:  
 
If there are no write locks on the table, put a read lock on it.  
Otherwise, put the lock request in the read lock queue.  
When a lock is released, the lock is made available to the threads in the write lock queue, then to the threads in the read lock queue.  
 
This means that if you have many updates for a table, SELECT statements will wait until there are no more updates.  
 
http://dev.mysql.com/doc/mysql/en/ [...] cking.html

n°807593
pilou51
Posté le 27-07-2004 à 13:25:38  profilanswer
 

pilou51 a écrit :

Bonjour à tous :)
 
 Voilà, je suivais le topic depuis un moment et ayant enfin un peu de temps libre en ce moment, je me lance pour faire un forum en PHP. Rien de bien original, j'ai assez peu fait de PHP dans ma vie, je fais plutôt du Java au boulot, mais j'espère bien apprendre et comprendre un peu mieux comment ça marche.  
 
Pour l'instant je dev sous Eclipse sur mon poste et je fais mes tests en local. J'aimerais publier mes versions, que me conseilleriez vous comme hébergeur qui gère le php/mysql et ait des temps d'accès corrects svp ?
 
Merci d'avance et bravo pour les autres forums, ça me bluffe :)


 
Scusez moi, je me permets de upper ma question concernant un bon hébergeur gratuit (si possible) gérant le php/mysql, mon serveur perso ne pouvant pas rester allumé 24/24 (problème de chaleur, des fois que des températures estivales arrivent :p)
 
merci :)

n°807594
esox_ch
Posté le 27-07-2004 à 13:26:51  profilanswer
 

Derniere question ... J'ai donc cru comprendre que la fonction count() est a bannir de mes requettes des que le nombre d'enregistrement en question risque d'etre élevé?

n°807596
gizmo
Posté le 27-07-2004 à 13:30:23  profilanswer
 

skylight a écrit :

To decide whether you want to use a storage engine with row-level locking, you will want to look at what your application does and what mix of select and update statements it uses. For example, most Web applications do lots of selects, very few deletes, updates based mainly on key values, and inserts into some specific tables. The base MySQL MyISAM setup is very well tuned for this.  
 
Table locking in MySQL is deadlock-free for storage engines that use table-level locking. Deadlock avoidance is managed by always requesting all needed locks at once at the beginning of a query and always locking the tables in the same order.  
 
The table-locking method MySQL uses for WRITE locks works as follows:  
 
If there are no locks on the table, put a write lock on it.  
Otherwise, put the lock request in the write lock queue.  
The table-locking method MySQL uses for READ locks works as follows:  
 
If there are no write locks on the table, put a read lock on it.  
Otherwise, put the lock request in the read lock queue.  
When a lock is released, the lock is made available to the threads in the write lock queue, then to the threads in the read lock queue.  
 
This means that if you have many updates for a table, SELECT statements will wait until there are no more updates.  
 
http://dev.mysql.com/doc/mysql/en/ [...] cking.html


Quelle horreur [:totoz]

n°807602
drasche
Posté le 27-07-2004 à 13:42:31  profilanswer
 

pilou51 a écrit :

Scusez moi, je me permets de upper ma question concernant un bon hébergeur gratuit (si possible) gérant le php/mysql, mon serveur perso ne pouvant pas rester allumé 24/24 (problème de chaleur, des fois que des températures estivales arrivent :p)
 
merci :)


pour les hébergements, c'est ici: http://forum.hardware.fr/forum2.ph [...] 0462&cat=4


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°807674
pilou51
Posté le 27-07-2004 à 14:43:37  profilanswer
 


 
ok merci bien j'avais pas pensé à chercher là bas.
 
Je publie la v0.1 de mon forum ce soir je pense :)

n°807729
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 27-07-2004 à 15:16:10  profilanswer
 

je publie bientot la v0.0001 béta de mon forum :o


---------------
J'ai un string dans l'array (Paris Hilton)
n°807731
drasche
Posté le 27-07-2004 à 15:23:53  profilanswer
 

Harkonnen a écrit :

je publie bientot la v0.0001 béta de mon forum :o


vu le numéro de version, je te conseillerais "alpha" plutôt que "beta" [:aloy]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°807751
Profil sup​primé
Posté le 27-07-2004 à 15:43:42  answer
 

Harkonnen a écrit :

je publie bientot la v0.0001 béta de mon forum :o


et oui l'informatique c'est des 0 et des 1
 
 
 :whistle:

n°807755
Gfreeman
http://www.FGFasp.com
Posté le 27-07-2004 à 15:47:01  profilanswer
 

spike a écrit :

et oui l'informatique c'est des 0 et des 1
 
 
 :whistle:


 
Quoi que dans certains cas on se demande si c'est pas 1/2
 
 
Je bosse actuellement sur la suppression de sujets (des gros genre 10000 réponses), et la mise à jour de certaines informations me posent problèmes. Si je supprime un sujet des 10 000 messages, un total de 500 utilisateurs ont posté dans ce sujet, il faut mettre à jour le nombre de messages posté par chaque utilisateur.
 
 
Comment faites vous pour mettre à jour le nombre de réponses d'un utilisateurs sachant que l'on souhaite éviter un balayage complet de la base avec un SELECT COUNT pour chaques users (pour des raison des perfs....) ?


Message édité par Gfreeman le 27-07-2004 à 16:01:00
n°807875
Rainbow_Ef​reet
Posté le 27-07-2004 à 17:34:07  profilanswer
 

langage objet :)
si tu as une methode supprimer message tu l'appelle a chaques message trouvé et cette methode se charge daller decrementer le user.
en gros fais une procedure supprimer message qui fait tout pour un message et appelle la dans ton record set lors de la suppression d'un sujet.

n°807878
Profil sup​primé
Posté le 27-07-2004 à 17:34:57  answer
 

Gfreeman a écrit :

Comment faites vous pour mettre à jour le nombre de réponses d'un utilisateurs sachant que l'on souhaite éviter un balayage complet de la base avec un SELECT COUNT pour chaques users (pour des raison des perfs....) ?


je fais un select recuperant les id des posteurs et le nombre de post de chacun dans le sujet en question
apres pour chaque ligne de mon résultat de requete j'effectue un update en soustrayant au membre le nombre de post qu'il avait dans le topic
 
c'est tout :)


Message édité par Profil supprimé le 27-07-2004 à 17:36:46
n°807880
Profil sup​primé
Posté le 27-07-2004 à 17:35:50  answer
 

rainbow_efreet a écrit :

langage objet :)
si tu as une methode supprimer message tu l'appelle a chaques message trouvé et cette methode se charge daller decrementer le user.
en gros fais une procedure supprimer message qui fait tout pour un message et appelle la dans ton record set lors de la suppression d'un sujet.


ma methode fait beaucoup moins de requetes :)
 

n°807884
Rainbow_Ef​reet
Posté le 27-07-2004 à 17:37:34  profilanswer
 

Il faut aussi vérifier si ton post que tu supprimes n'est pas le dernier message vers lequel pointe tous les forums (genre afficher un lien vers un dernier message qui n'est plus là...) et auquel cas recalculuer le plus récent message pour ce forum ... J'espere que ta méthode super light fais tout ça aussi spike :)


Message édité par Rainbow_Efreet le 27-07-2004 à 17:38:43
n°807895
Profil sup​primé
Posté le 27-07-2004 à 17:45:10  answer
 

rainbow_efreet a écrit :

Il faut aussi vérifier si ton post que tu supprimes n'est pas le dernier message vers lequel pointe tous les forums (genre afficher un lien vers un dernier message qui n'est plus là...) et auquel cas recalculuer le plus récent message pour ce forum ... J'espere que ta méthode super light fais tout ça aussi spike :)


biensur, mais j'ai juste dis comment je faisais la decrementation du nb de post par user la :)

n°807899
esox_ch
Posté le 27-07-2004 à 17:49:57  profilanswer
 

Pour savoir si une reponse est la derniere postée sur un sujet (et sur un forum) il y a un moyen a part de faire une colonne "is_last" qu'on updatera chaque fois que qqn poste?

n°807902
jagstang
Pa Capona ಠ_ಠ
Posté le 27-07-2004 à 17:51:38  profilanswer
 

esox_ch a écrit :

Pour savoir si une reponse est la derniere postée sur un sujet (et sur un forum) il y a un moyen a part de faire une colonne "is_last" qu'on updatera chaque fois que qqn poste?

seul problème. il faut enlever le is_last à l'ancien dernier.
 
à mon avec un index sur la date et rulez


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  153  154  155  ..  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)