REQUETE sql lente
Fermé
tic1992
Messages postés
1
Date d'inscription
lundi 28 avril 2014
Statut
Membre
Dernière intervention
28 avril 2014
-
28 avril 2014 à 22:15
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 2 mai 2014 à 20:07
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 2 mai 2014 à 20:07
A voir également:
- REQUETE sql lente
- Blob sql ✓ - Forum Webmastering
- Erreur lors de l'envoi de la requête facebook marketplace - Forum Facebook
- Souris lente ✓ - Forum souris / Touchpad
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - Forum Facebook
- Logiciel sql - Télécharger - Bases de données
1 réponse
mpmp93
Messages postés
6648
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
1 339
2 mai 2014 à 20:07
2 mai 2014 à 20:07
Bonjour,
Oui, j'ai une idée....
Il faut indexer TOUS LES CHAMPS sur lesquels vus faites des jointures, par exemple:
...
LEFT JOIN spip_rubriques e ON u.id_parent = e.id_rubrique
...
Idem sur les champs sur lesquels vous faites des WHERE:
WHERE ((spip_articles.titre LIKE '".$_GET['mot']."' OR spip_articles.chapo LIKE '".$_GET['mot']."'' OR spip_auteurs.nom LIKE '".$_GET['mot']."' OR u.titre like '".$_GET['mot']."' OR match(spip_documents.contenu) against ('".$_GET['mot']."' IN boolean mode))"
Si vous avez un seul champ pas indexé, ça freinera très fort....
Ha, autre chose, faire des concaténations à partir des $_GET est une faute grave de sécurité. Vous risquez l'injection de code!
https://www.php.net/manual/fr/security.database.sql-injection.php
A+
Oui, j'ai une idée....
Il faut indexer TOUS LES CHAMPS sur lesquels vus faites des jointures, par exemple:
...
LEFT JOIN spip_rubriques e ON u.id_parent = e.id_rubrique
...
Idem sur les champs sur lesquels vous faites des WHERE:
WHERE ((spip_articles.titre LIKE '".$_GET['mot']."' OR spip_articles.chapo LIKE '".$_GET['mot']."'' OR spip_auteurs.nom LIKE '".$_GET['mot']."' OR u.titre like '".$_GET['mot']."' OR match(spip_documents.contenu) against ('".$_GET['mot']."' IN boolean mode))"
Si vous avez un seul champ pas indexé, ça freinera très fort....
Ha, autre chose, faire des concaténations à partir des $_GET est une faute grave de sécurité. Vous risquez l'injection de code!
https://www.php.net/manual/fr/security.database.sql-injection.php
A+