Nouveau sujet Répondre Imprimer Syndication RSS 2.0

[MySQL] - Optimisation Table fsb_messages_lus

Volcan
Avatar de burster
  • Age : 2212 ans
  • Messages : 1685
  • Inscrit : 19 Mars 2005
  Lien vers ce message 23 Juin 2006, 14:40

Reprise du dernier message

Je suis pas sur que le AS de cette façon soit géré par tous les SGBD.

Sinon es tu sur d'avoir corrigé partout ? c'est le seul endroit ou y a la fonction INSERT pour cette table?


e-Traker
 
Flamme ardente
Avatar de TCool
  • Age : 29 ans
  • Messages : 472
  • Inscrit : 04 Février 2005
  Lien vers ce message 23 Juin 2006, 14:41
Je pence pas que Geno est fait plusieurs functions pour la méme choses ..


TCooL TCooL
MonFSB, hébergement de son forum fsb gratuit ^^
Zoneur And PurPle développement ^^
Tous mes MOD dispo ici
 
Volcan
Avatar de burster
  • Age : 2212 ans
  • Messages : 1685
  • Inscrit : 19 Mars 2005
  Lien vers ce message 23 Juin 2006, 14:45
Donc j'ai une petite table de 1231 Ko
avec plus de 32 000 enregistrements..
Après execution je passe à 3.259 Ko

Mais cela peut beaucoup changer, tout dépend en faite dans la façon dont ta table a été rempli. Si aucun de tes membres sont revenus plusieurs fois sur un sujet, ça risque de faire tres peu de difference.


e-Traker
 
Equipe de développement
Avatar de SquallX
  • Age : 21 ans
  • Messages : 2929
  • Inscrit : 18 Novembre 2004
  Lien vers ce message 24 Juin 2006, 11:28
Il existe des méthodes plus simples pour gérer le marquage des sujets comme lus :) Et pas plus lourdes ;)
 
Chef du projet FSB
Avatar de Genova
  • Age : 26 ans
  • Messages : 14944
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 24 Juin 2006, 12:29
Comme quoi par exemple ?


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Volcan
Avatar de burster
  • Age : 2212 ans
  • Messages : 1685
  • Inscrit : 19 Mars 2005
  Lien vers ce message 24 Juin 2006, 18:09
Oui c'est bien beau de dire ça, mais développé ton idée pourraît être bien ;)


e-Traker
 
Chef du projet FSB
Avatar de Genova
  • Age : 26 ans
  • Messages : 14944
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 24 Juin 2006, 18:17
De toute façon les deux seules façon viables de gérer des non lus sont soit avec des cookies, soit de cette façon. Et la solution des cookies a ses inconvénients assez pénibles ...


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Volcan
Avatar de burster
  • Age : 2212 ans
  • Messages : 1685
  • Inscrit : 19 Mars 2005
  Lien vers ce message 24 Juin 2006, 18:19
Un cookie ne peut être utilisé correctement.

Suffit que la personne vide ses cookies ou change de poste de travail (maison/boulot) pour avoir à relire les même sujets.

Stocker dans une base de donnée, les posts qu'un utilisateur a lu pourquoi pas.
Par contre y a un truc auuquel je ne sais pas à quoi ça sert rélllement.
Quel intérêt de mettre la colonne forum_id dans cette table?
A la limite on a juste besoin de :

user_id, sujet_id, derniere_visite


e-Traker
 
VIP
Avatar de Shekral
  • Age : 26 ans
  • Messages : 972
  • Inscrit : 25 Février 2006
  Lien vers ce message 24 Juin 2006, 18:40
Citation (burster)
Par contre y a un truc auuquel je ne sais pas à quoi ça sert rélllement.
Quel intérêt de mettre la colonne forum_id dans cette table?
A la limite on a juste besoin de :

user_id, sujet_id, derniere_visite

Je crois que c'est pour éviter une requète suplémentaire au niveau de l'index du forum, pour afficher les forums lus et non lus. En ayant le forum_id, t'as pas besoin de faire une requète sur la table sujet pour réqupérer le forum_id pour pouvoir verfifier le status des forums que tu affiche


WikiFSB
 
Equipe de développement
Avatar de SquallX
  • Age : 21 ans
  • Messages : 2929
  • Inscrit : 18 Novembre 2004
  Lien vers ce message 25 Juin 2006, 10:19
Citation (Genova)
Comme quoi par exemple ?


Et bien par exemple tu peux stocker dans la table sujet un champ sujet_membres_lu qui contiendrait les id des membres ayant lu le sujet, de cette façon il est assez facile de faire un système de marquage performant par catégories, par forums (en incluant les sous forums) et etc ... et il est donc encore plus simple de vérifier si le membre a lu le sujet ou pas ;)
 
Volcan
Avatar de burster
  • Age : 2212 ans
  • Messages : 1685
  • Inscrit : 19 Mars 2005
  Lien vers ce message 25 Juin 2006, 10:31
Hum ça obligera soit à dupliquer les lignes de sujet dans cette table en fonction du nombre de membre OU contacténé tous le membres dans un champ.

Et la 2 ième méthode n'est pas forcément la plus rapide, car il faut splitter et parser ensuite cette chaine x)


e-Traker
 
Flamme ardente
Avatar de TCool
  • Age : 29 ans
  • Messages : 472
  • Inscrit : 04 Février 2005
  Lien vers ce message 25 Juin 2006, 10:58
C'est tres bien comme sa, juste il faudrai transphormer les colonnes 'user_id, sujet_id, forum_id' en primary key sa accelleré le bin's ( le mieux sa serait une foreign key)


TCooL TCooL
MonFSB, hébergement de son forum fsb gratuit ^^
Zoneur And PurPle développement ^^
Tous mes MOD dispo ici
 
Volcan
Avatar de Mido
  • Age : 35 ans
  • Messages : 1849
  • Inscrit : 28 Janvier 2005
  Lien vers ce message 25 Juin 2006, 11:03
Heu.... UNE clé primaire par table, jamais deux. Ensuite, Foreign key n'accélère rien du tout, ça sert à lier deux tables. Et si on mets une colonne en clé primaire, il ne faut pas la mettre en index (normalement, on mets l'id en clé primaire, et on indexe les trucs spéciaux).

Midori.


http://www.loutan.net/ub/encyclo.gif
http://www.loutan.net/ub/ludivers.gif
http://www.loutan.net/ub/yves.gif
 
Chef du projet FSB
Avatar de Genova
  • Age : 26 ans
  • Messages : 14944
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 25 Juin 2006, 12:22
Citation (SquallX)
Citation (Genova)
Comme quoi par exemple ?


Et bien par exemple tu peux stocker dans la table sujet un champ sujet_membres_lu qui contiendrait les id des membres ayant lu le sujet, de cette façon il est assez facile de faire un système de marquage performant par catégories, par forums (en incluant les sous forums) et etc ... et il est donc encore plus simple de vérifier si le membre a lu le sujet ou pas ;)

lol

Déjà les procédures pour vérifier si un membre a lu le sujet, et pour ajouter le membre au sujet seraient assez pénibles puisqu'il faut concatener des chaines.
Ensuite ton système marchera pour un forum limité en membre puisque la taille d'un champ est limité.
Enfin c'est super lent comme méthode x) Les jointures sont beaucoup plus rapides que l'accès en écriture direct à un champ TEXT.


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Equipe de développement
Avatar de SquallX
  • Age : 21 ans
  • Messages : 2929
  • Inscrit : 18 Novembre 2004
  Lien vers ce message 25 Juin 2006, 12:28
et bien ma foi en test ça rend pas mal, et dans un forum il y a généralement moins de membres que de sujets ;)
 
Chef du projet FSB
Avatar de Genova
  • Age : 26 ans
  • Messages : 14944
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 25 Juin 2006, 12:54
Pour un forum tout petit on est d'accord ca peut marcher. Mais dès qu'il grossira ca deviendra le bordel dans la base de donnée .. Enfin bon comme tu veux mais si personne n'utilise un tel système ya surement une raison ;)


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Répondre


.