PhpMyAnnu ou Categorizor probleme codage

WRInaute impliqué
Bonjour,
J'utilise comme beaucoup d'entre nous ce script.

Je voudrai avoir votre avis sur un point technique important.

Je m'apercois que mon site basé sur ce script est de plus en plus lent.
Après des recherches d'optimisations je suis tombé sur les fonctions de connection à la base de données.

Je n'arrive pas à comprendre quelle est l'utilité de la fonction connection_BD() se trouvant dans le fichier functions.php
En effet lorsque vous regardez le script d'un page quelquonque vous avez un peu près ceci :

Code:
<html>
.....

<?
$lk = connection_DB();
$query = ".....";
$res = send_sql($query_clic,"....");
mysql_close($lk);
?>

....

<?
$lk = connection_DB();
$query = ".....";
$res = send_sql($query_clic,"....");
mysql_close($lk);
?>

C'est à dire que nous ouvrons plusieurs fois un lien entre la BDD et le site !
Ce qui forcément ralenti tout le script.

Pourquoi ne pas ouvrir une fois le lien avec la BDD au début du script puis de le refermer à la fin du script ?
Et en plus utiliser des mysq_free_result après chaque traitement..

Bref je suis le seul à avoir remarqué cela ou je divague beaucoup en ce moment :D
 
WRInaute impliqué
je rajoute le code de la function connection
Code:
function connection_BD()
{
	global $db_server, $db_user_login, $db_user_pass, $db_name;
	$linkid = @mysql_connect($db_server,$db_user_login,$db_user_pass) or die ("...");
	@mysql_select_db($db_name,$linkid) or die("...);
	return $linkid;
}
 
WRInaute impliqué
C'est amusant ce monologue.

Juste pour confirmer mes dires
dans le fichier functions.php et plus précisement dans la function send sql ligne 26
faites un test avec affichant les requetes

Quelle joie de voir, si votre annuaire comporte de nombreuses catégories et sous catégories (ce qui est mon cas), plus de 70 requetes ! pour la page d'index... :roll:

D'un autre côté c'est pas mal pour se rendre compte du contenu de ce type d'annuaire.

Soit le site tourne rapidement => lancement de l'annuaire
Soit ca rame => là y a du contenu :D
 
WRInaute accro
l'idee d'optimiser le script est excellente, si tu peux accélérer les demandes/réponses avec la bdd, ça m'intéresse aussi
(peut etre meme que ça baisse aussi le nombre de hit du coup ?)
 
WRInaute accro
Bonjour,
Si, ca intéresse beaucoup de monde, mais à part recoder l'engin il n'y a pas beaucoup de solutions.
Quelques pistes :
1 - la mise en cache évidemment,
2 - la suppression de l'affichage du nombre de sites dans chaque catégorie [$sql_nbsites = "SELECT id FROM $T_sites WHERE activation = '1' "; et suppression du code qui s'y rapporte],
3 - le non affichage des sous catégories sur l'index ou la suppression de la requête comme dans 2,
4 - la fusion de haut et before et de bas et after,
5 - l'éclatement du fichier functions.php,
6 - suppression du système d'image de superpj.
@+
 
WRInaute impliqué
haha :lol:
Pour ma part j'ai oter l'affichage du nombre de site par catégorie.
J'ai supprimé les appels à la fonction connection BDD. Dans le fichier fonction ma première ligne ouvre la connection à la base de données et dans le fichire after je la referme.

Mais bon ce ne sont que des petites modifications. En ce moment je suis en train de tout recoder :roll:
 
Nouveau WRInaute
bonjour a tous,

je voulais savoir si tu avais trouvez la solution pour optimiser les requetes a la bd
:roll:
 
WRInaute passionné
Très belle remontée de topic! ;)
Ca fait 3 ans que le sujet a été fait, peut-être que d'autre versions de phpmyannu ou categorizor sont sortis et ont résolu ces problèmes. Je dis ça mais je n'utilise pas ces outils pour faire un annuaire....
 
Nouveau WRInaute
Un bon vieux cache et là tu peux économiser énormément de ressources...
En plus c'est plustôt simple à implenter...
 
WRInaute accro
Salut,
En fait les requêtes sont assez rapides c'est tout le PHp qui est utilisé pour l'affichage qui est incroyablement long.
Pour le rendre plus rapide il faut l'alléger au maximum. Le seul point noir des requêtes se situe au niveau des recherches, au delà d'un certain stade la mise en place d'un moteur de recherche interne par fulltext est indispensable, mais pas évidente ;)
@+
 
Discussions similaires
Haut