VEF Blog

Titre du blog : Vefblog, le site
Auteur : vefblog
Date de création : 28-12-2004
 
posté le 23-11-2007 à 11:30:57

Optimisations

Depuis le début de la semaine, j'ai mis en veille les nouveaux développements pour optimiser Vefblog au niveau de la rapidité.

Le résultat : même les pages les plus longues à charger sont devenues très rapides. Il y a aussi quelques changements visibles :

 

Changement dans les pages 

Quelques autres petites améliorations ont été faites sur certaines pages (marges, formulations ou autres).

 

Nettoyage des blogs et auteurs supprimés

Les pseudos des auteurs et des blogs effacés ou bannis depuis plus de 35 jours, sont maintenant définitivement libérés et réutilisables

Une trace des blogs effacés est pourtant gardée au cas improbable où la justice le réclamerait, comme la loi française le demande. 

 

Le cas de la recherche de texte dans les articles et commentaires 

Quand Vefblog lance une recherche pour la première fois depuis un bout de temps, la recherche est longue à se faire (chargement de l'index de textes). Au bout de quelques recherches, celles ci redeviennent rapides. A ma connaissance,c'est le seul point gris (pas noir, quand même) encore restant.

 

Techniquement ?

 La plupart des changements concernent la base de donnée de Vefblog , sous mysql. Les tables étaient bien indexées pour assurer tous les calculs spéciaux, mais du coup les index devenaient gros et devaient souvent être lus du disque dur (et non du cache en RAM).

 Techniquement, j'ai supprimé plusieurs des index des grosses tables de la base de données, en ne laissant que ceux nécessaires pour tous les éléments ; et j'ai créé des tables bien indexés mais légères, pour toutes les opérations coûteuses qui ne concernent que les éléments récents. Pour les statistiques, une table par mois mise à jour régulièrement, permet de nettoyer la table des statistiques journalières et de simplifier les calculs de façon transparante.

De plus, l'utilisation sur le nouveau serveur de mysql en version 5, m'a permis de commencer à utiliser des triggers afin de m'assurer que des elements "fantômes" ne polluent plus la base. 

Pour les recherches de texte, les index fulltext sont sur des tables séparées que celles des articles et commentaires, afin de ne pas prendre en compte les effacés ou les brouillons, et de ne contenir que le texte "pur" et non html. Malgré cela, l'utilisation de tels index reste couteuse à l'insertion et à la lecture.