suite lenteur de mon moteur de recherche, je donne mon code

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : suite lenteur de mon moteur de recherche, je donne mon code

Re: suite lenteur de mon moteur de recherche, je donne mon code

par @rthur » 12 oct. 2023, 13:10

Les requêtes SQL en LIKE sont très gourmandes en ressources, une piste d'optimisation serait d'utiliser les fonctionnalités de recherche "full-text".

Voici quelques tutos :
https://grafikart.fr/tutoriels/mysql-fulltext-2009
http://www.finalclap.com/faq/133-mysql- ... -recherche

Avant de modifier ton code, fais déjà des tests dans phpmyadmin pour voir si ça améliore la situation.
Si ce n'est pas le cas ou si ce n'est pas suffisant, alors il faudra voir avec ton hébergeur.

suite lenteur de mon moteur de recherche, je donne mon code

par as2 » 12 oct. 2023, 11:19

Bonjour,
Je rappelle que je suis un vieux schnock et que je ne suis plus du tout au top de la programmation php/MySql.
Mon site est rapide comme l'éclair en local, mais le moteur de recherche (et uniquement lui) rame à mort sur Free.
Alors je vais tenter de vous donner mon code, je ne sais pas trop comment on fait.
Dans ce code je cherche la présence d'un texte dans toutes mes bases de données, et j'utilise pour ça une requête croisée entre 2 tables.

// recherche dans le titre avec une requête croisée
if ($select=="tout" or $select=="titre")
{
$requet = "SELECT DISTINCT film_image.nom, film_image.an, lien.film, film_image.ID
FROM
film_image , lien
WHERE
film_image.nom LIKE '%$texte%' AND film_image.ID=lien.film
ORDER BY film_image.nom";
$result = mysql_query($requet);

if (mysql_num_rows($result) > 0) {
echo "<br>"."<b><font size='4'>&nbsp;&nbsp;&nbsp;Titre : </b>"."<br>";
$oc++;
while($ligne = mysql_fetch_row($result))
{
$titre= $ligne[0];
$an= $ligne[1];
$id= $ligne[3];
echo"<fontsize='3'><a ref='image_film.php?ID=$id&p=film'>$titre</a>&nbsp;($an)</font><br>";
}
}
}

Et je fais la même chose pour 3 autres BDD.
est-ce qu'il y a quelque chose qui expliquerait la lenteur de recherches sur Free ???