Cache des requêtes préparées

Signaler
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
-
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
-
Bonjour,

une petite question pour les pros de SQL :
je n'arrive pas à déterminer si, quand on fait une requête préparée, ça efface la mise en cache de la précédente. La doc mysql parle d'un handle que MySQL retourne au moment de la préparation de la requête, ce qui peut éventuellement laisser penser que non, mais la doc mysqli/pdo ne dit rien là-dessus... ils pourraient bien ne pas le gérer.

concrètement :

$stmt = $dbh -> prepare (...);
$stmt -> execute(...);

$stmt2 = $dbh -> prepare (...);

$stmt2 -> execute(...);

$stmt -> execute(...);

Est-ce que la 2ème fois qu'on exécute $stmt, il refait l'analyse/optimisation de $stmt ?

merci !

2 réponses

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
Salut

analyse/optimisation c'est une etape faite par php ou mysql ? a mon avis, c'est fait par mysql...

php ne peut envoyer une requete qu'apres avoir eu execute (en tout cas, c'est comme ca en perl... j'utilise pas pdo, je devrais peut-etre...)

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Bonne question,

c'est analysé/optimisé côté serveur sous MySQL (avec php). En Perl ça a longtemps été côté client, je ne sais pas si une nouvelle build a corrigé ça depuis. Avec les SGBD qui ne supportent pas les requêtes préparées, sous PDO elles sont émulées évidemment côté client.

Mais est-ce que MySQL se rappelle de l'analyse/optimisation de $stmt après avoir analysé/optimisé $stmt2 ? là est la question...

Pour PDO... je suis en train de tester différentes posibilités, je pense que je ferai un article là-dessus quand j'aurai terminé. Je peux d'ores et déjà dire que je pense plutôt passer à mysqli que PDO qui m'énerve un peu.