How to efficiently use MySQLDB SScursor?

后端 未结 3 646
再見小時候
再見小時候 2020-11-28 07:44

I have to deal with a large result set (could be hundreds thousands of rows, sometimes more).
They unfortunately need to be retrieved all at once (on start up).

3条回答
  •  天涯浪人
    2020-11-28 08:10

    Definitely use the SSCursor when fetching big result sets. It made a huge difference for me when I had a similar problem. You can use it like this:

    import MySQLdb
    import MySQLdb.cursors
    
    connection = MySQLdb.connect(
            host=host, port=port, user=username, passwd=password, db=database, 
            cursorclass=MySQLdb.cursors.SSCursor) # put the cursorclass here
    cursor = connection.cursor()
    

    Now you can execute your query with cursor.execute() and use the cursor as an iterator.

    Edit: removed unnecessary homegrown iterator, thanks Denis!

提交回复
热议问题