sql >> Database teknologi >  >> RDS >> Mysql

Hurtigere Python MySQL

Standard MySQLdb markøren henter hele forespørgselsresultatet på én gang fra serveren. Konvertering af disse data til en Python-liste over tupler kan forbruge meget hukommelse og tid.

Brug MySQLdb.cursors.SSCursor når du vil lave en enorm forespørgsel og trække resultater fra serveren én ad gangen. Bemærk dog, at når du bruger SSCursor, ingen anden forespørgsel kan foretagesconnection indtil hele resultatsættet er hentet.

import MySQLdb
import MySQLdb.cursors as cursors
connection = MySQLdb.connect(
    ...
    cursorclass = cursors.SSCursor)
cursor = connection.cursor()
cursor.execute(query)
for row in cursor:
    ...

Eller brug oursql , en alternativ Python-driver til MySQL. En af funktionerne ved oursql er, at den henter rækker dovent .




  1. Undgå at gentage poster, der vises i MySQL / PHP

  2. Hvorfor udfører PostgreSQL sekventiel scanning på indekseret kolonne?

  3. Hvordan opsætter man brugernavn og adgangskode med Slicks kildekodegenerator?

  4. Flere GROUP_CONCAT på forskellige felter ved hjælp af MySQL