Cache des requêtes préparées

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 - 15 sept. 2007 à 19:39
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 - 16 sept. 2007 à 11:21
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

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
16 sept. 2007 à 01:52
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
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
16 sept. 2007 à 11:21
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.
0
Rejoignez-nous