|
Publicité | ||||||||||||||||||||||
|
|
#1 (permalink) |
|
Invité de passage
![]() Date d'inscription: octobre 2009
Messages: 3
|
Bonsoir,
je dispose d'un forum archaïque (en terme d'optimisation et de fonctionnalités) créer il y a 2 ans, aujourd'hui j'ai en moyenne (j'arrondis les moyennes) 50 membres connectés, 1700 nouveaux messages (hors MP) et 600 sujets uniques vus (par des membres connectés) par jour. Mes membres se plaignent de la lenteur de "la bête" comme certains l'appellent, la page d'accueil pour un membre connecté peut mettre jusqu'à 6 secondes pour s'afficher. Dans le but d'offrir un forum plus performant à mes forumeurs je réfléchis à un nouveau forum avec plus de fonctionnalités et plus optimisé. Dans ma réflexion je bloque sur le système de lu / non lu, ce dernier génère autant de lignes dans la table que de sujet uniques vu, ma table fait plusieurs ko. A vrai dire j'ai déjà réussi (sur le papier) à optimiser l'ensemble du forum, hors mis ce système de lu / non lu, je cherche donc des idées pour créer un systeme plus optimisé, j'y ai réfléchis durant un certain temps et franchement je me demande même si il est possible de faire autrement qu'avec la méthode utiliser dans ce tutoriel ^^ Merci d'avance ! Dernière modification par sabotage ; 19/01/2010 à 08h04. |
|
|
|
|
|
#2 (permalink) |
|
Nouveau membre du Club
![]() Date d'inscription: avril 2009
Messages: 63
|
Bonjour,
Reprend moi si j'ai mal compris. Pour schématiser tu as une table 'article' (id, nom, contenu, etc...) et une table 'stat_article' avec les champs suivants : id_article, id_user et la date de visualisation. Si tu souhaite avoir le détail précis des visualisation, ta méthode semble être la bonne. Si tu souhaite juste connaître le nombre de fois qu'un article est lu, rajoute un champs 'nb_view' par exemple à la table article, que tu incrémente à chaque lecture de l'article. Maintenant une bdd qui fait quelques ko c'est pas énorme. Les lenteurs peut-être d'un problème d'indexation des champs. Vois la commande mysql 'describe'. |
|
|
|
|
|
#3 (permalink) |
|
Invité de passage
![]() Date d'inscription: octobre 2009
Messages: 3
|
Bonjour noreaga,
oui la table se présente sous cette forme : id topic | id posteur | date de visualisation Aucun des champs n'est indexé, à vrais dire je ne sais pas comment me servir des index, j'ai pourtant lu un tutoriel à ce sujet. Dans le cas de cette table, une clé primaire sur id topic suffirait ? |
|
|
|
|
|
#4 (permalink) |
|
Nouveau membre du Club
![]() Date d'inscription: avril 2009
Messages: 63
|
Si aucun des champs ne sont indexés en effet tu devrais gagner du temps sur tes requêtes, une fois les colonnes indexées.
Pour la syntaxe: Code :
ALTER TABLE tbl_name ADD INDEX index_name (column); Pour le index_name, je crois que ça n'a pas d'importance, mets le même nom que tes colonnes. Dis moi ce que ça donne. |
|
|
|
|
|
#5 (permalink) |
|
Invité de passage
![]() Date d'inscription: octobre 2009
Messages: 3
|
Merci noreaga !
J'avais cru comprendre qu'il existait plusieurs sortent d'index, c'est faux ? J'avais prévu de faire une mise à jour sur mon site demain matin, je modifiai la bdd pour ajouter les index en même temps, je te dirai ce que ça donne. |
|
|
|
|
|
#6 (permalink) |
|
Nouveau membre du Club
![]() Date d'inscription: avril 2009
Messages: 63
|
En effet il existe plusieurs sortent d'index.
Ce ne seront clairement pas des primary key, car tu auras forcément des doublons dans tes deux colonnes. Ce sera des type KEY, je pense. Je viens de trouver un super article: http://www.dbnewz.com/2008/06/27/les...ts-efficacite/ |
|
|
|
|
|
#7 (permalink) |
![]() Date d'inscription: décembre 2006
Messages: 177
|
Tu utilises quoi comme pilote de base de données ?
Je te conseille d'utiliser mysqli, c'est plus rapide et exploite mieux la mémoire que mysql. C'est assez facile de changer si les fonctions de connexion sont groupées. Quand au index, attention, les lecteurs sont plus rapides, mais pas les écritures. Si c'est sur un dédié, il peut être utile de vérifier le cache MySQL. Si des sessions sont stockées en base, passer en MEMORY peut-être intéressant. Voilà quelques pistes, bon courage. |
|
|
|
|
![]() |
||
savez-vous comment créer un systeme de lu / non lu optimisé ?
|
||
| Outils de la discussion | |
|
|