Est-ce que 'cursor.execute(#requeête base de données)' stocke les données en mémoire ?

Le problème exposé dans ce sujet a été résolu.

Bonjour,

Je ne sais pas si c’est le bon forum pour poser cette question mais à part le forum programmation je ne vois pas d’autre où je peux le faire. Ma question concerne le fonctionnement de la classe cursor présente dans la plupart des APIs de gestion de base de données avec Python. Pour prendre l’exemple de MySQL, si après avoir établi la connexion à une base de données MySQL et qu’on fait cursor.execute("""SELECT * FROM nom_table"""), est-ce que cette commande va créer en mémoire une structure de données dans laquelle elle place le résultat de la requête ou ce n’est pas le cas ?

En fait, j’aimerais utiliser cursor.fetchmany(size) après, donc si la première commande va créer et stocker des données en mémoire, puis la deuxième commande va parcourir cette structure de données pour renvoyer des résultats ça va être énorme en terme de temps et de mémoire.

J’espère que vous pourrez m’aider. Merci d’avance.

Salut,

Non en fait le principe du curseur est justement de ne pas calculer tout le résultat de la requête en mémoire, c’est un mécanisme du côté de la base de données.

Le curseur est ce qui va te permettre d’itérer sur les résultats, et donc de récupérer la ligne suivante à chaque itération.

Bonjour,

Merci pour votre aide et excusez-moi pour ma réponse tardive. Est-ce qu’on sait que cursor ne charge pas la requête SQL en mémoire parce que dans la documentation car la classe a cette attribut rowcount ?

As required by the Python DB API Spec, the rowcount attribute “is -1 in case no executeXX() has been performed on the cursor or the rowcount of the last operation is not determinable by the interface”. This includes SELECT statements because we cannot determine the number of rows a query produced until all rows were fetched.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte