Mysql
 sql >> база данни >  >> RDS >> Mysql

Извличане на данни от MySQL на партиди чрез Python

Първа точка:python db-api.cursor е итератор, така че освен ако наистина не трябва за да заредите цяла партида в паметта наведнъж, можете просто да започнете с използването на тази функция, т.е. вместо:

cursor.execute("SELECT * FROM mytable")
rows = cursor.fetchall()
for row in rows:
   do_something_with(row)

можете просто:

cursor.execute("SELECT * FROM mytable")
for row in cursor:
   do_something_with(row)

След това, ако реализацията на вашия db конектор все още не използва правилно тази функция, ще е време да добавите LIMIT и OFFSET към микса:

# py2 / py3 compat
try:
    # xrange is defined in py2 only
    xrange
except NameError:
    # py3 range is actually p2 xrange
    xrange = range

cursor.execute("SELECT count(*) FROM mytable")
count = cursor.fetchone()[0]
batch_size = 42 # whatever

for offset in xrange(0, count, batch_size):
    cursor.execute(
        "SELECT * FROM mytable LIMIT %s OFFSET %s", 
        (batch_size, offset))
   for row in cursor:
       do_something_with(row)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да премахнете две дублиращи се колони

  2. Вмъкването на JPA родител/подчинение води до изключение на MySQLIntegrityConstraintViolationException

  3. За SHA512-хеширане на парола в MySQL база данни от Python

  4. WooCommerce сериализира масив от мета стойности в таблицата wp_postmeta

  5. Подреждане по подразбиране в MySQL (ALTER TABLE ... ORDER BY ...;)