lagombe
Messages postés45Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 mars 2008
-
5 sept. 2005 à 15:55
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 2007
-
7 sept. 2005 à 17:21
Bonjour à tous,
Voilà, j'utilise dans une base MySQL une recherche fulltext en
utilisant la syntaxe 'MATCH... AGAINST ('... IN BOOLEAN MODE') mais je
trouve cette recherche monstrueusement longue alors que lorsque je la
tape directement (phpMyAdmin) elle me renvoie immédiatement les
résultats... Une idée?
lagombe
Messages postés45Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 mars 2008 6 sept. 2005 à 08:48
>J_G : l'erreur ne vient pas de la syntaxe de la requête car elle me
renvoie les bons enregistrements mais la page de résultats est longue à
s'afficher...
>Antho : rien de particulier, j'ai plusieurs clauses where que je
stocke dans un tableau (mais le problème arrive même quand il n'y a que
la requête sur ce champ là) comme ça :
...
if(strlen($_POST['observation_can'])>0){
$a_where[] =
"match(o.observation) against('".$_POST['observation_can']."' in
boolean mode)";
}
...
puis je crée ma requête finale :
// création de la requête finale
bd_connection();
if(count($a_where)>0){
$sql = "select distinct
c.num_can, c.civilite_can, c.nom_can, c.prenom_can,
c.metier_can from candidats as c left join observation_can as o
on c.num_can=o.can";
$sql .= " where ".implode(" and ", $a_where)." order by ";
if (!isset($_POST['order_by'])) $_POST['order_by']='nom_can';
$sql = str_replace("\", "", $sql);
if (!isset($_POST['order_tr'])) $_POST['order_tr']='asc';
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 6 sept. 2005 à 19:13
Bah quand tu dis "monstrueusement longue" ça veut dire combien de temps
pour afficher la page ? tu peux utiliser aussi les fonctions dispos sur
ce site (pas mal de sources) permettant d'indiquer le temps de
génération d'une page, tu t'en sers non pas pour la page entière mais
pour la requête, et ensuite pour la page entière (tu sauras si ça vient
de ta requête ou pas)
J_G
Messages postés1406Date d'inscriptionmercredi 17 août 2005StatutMembreDernière intervention28 août 200710 6 sept. 2005 à 20:37
Salut,
je tombe un peu nus... Ta requète n'est pas longue... Tu es bien loin
d'atteindre un seuil de complexité suffisant pour faire brouter le
serveur MySQL. En plus tu dis que la requète est rapide quand
executée directement dans PhpMyAdmin...
Alors, le problème ne doit pas venir de ta requète!
Autre piste si tu utilise EasyPHP sous Windows, mais j'ai des doutes :
Peut-être as-tu déjà remarqué que l'acces à la base MySQL bloque
parfois... Sans qu'on puisse vraimement savoir pourquoi. EasyPHP
mentionne ce problème.
lagombe
Messages postés45Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 mars 2008 7 sept. 2005 à 09:26
Quand je dis "monstrueusement" longue
c'est surtout en comparaison de son affichage quand je la tape dans
PhpMyAdmin... sinon elle doit mettre autour de 10 secondes... sinon je
vais regarder avec les outils dont me parlais Antho... merci à vous...
lagombe
Messages postés45Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 mars 2008 7 sept. 2005 à 17:14
donc ton code php peut ralentir l'éxécution de tes requêtes... mmhhh...
donc si tu avais trois conseils à donner dans ce sens que dirais-tu?
quels sont les choses à éviter le plus souvent?
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 7 sept. 2005 à 17:21
non le code php ne ralentit pas l'exécution des requêtes (c'est
indépendant) mais tu peux très bien faire une bonne requête mysql et un
code php pourri derrière qui va te faire une boucle infinie...