Должен ли я повторно использовать курсор в модуле python MySQLdb

Я пишу сценарий CGI на Python, который будет запрашивать базу данных MySQL. Я использую модуль MySQLdb. база данных будет запрашиваться повторно, я написал эту функцию ....

def getDatabaseResult(sqlQuery,connectioninfohere):
    # connect to the database
    vDatabase = MySQLdb.connect(connectioninfohere)
    # create a cursor, execute and SQL statement and get the result as a tuple
    cursor = vDatabase.cursor()
    try:
        cursor.execute(sqlQuery)
    except:
        cursor.close()
        return None
    result = cursor.fetchall()
    cursor.close()
    return result

У меня вопрос ... Это лучшая практика? Должен ли я повторно использовать свой курсор в моих функциях? Например. Что лучше ...

def callsANewCursorAndConnectionEachTime():
    result1 = getDatabaseResult(someQuery1)
    result2 = getDatabaseResult(someQuery2)
    result3 = getDatabaseResult(someQuery3)
    result4 = getDatabaseResult(someQuery4)

или полностью отказаться от функции getDatabaseeResult и сделать что-нибудь вроде ..

def reusesTheSameCursor():
    vDatabase = MySQLdb.connect(connectionInfohere)
    cursor = vDatabase.cursor()

    cursor.execute(someQuery1)
    result1 = cursor.fetchall()

    cursor.execute(someQuery2)
    result2 = cursor.fetchall()

    cursor.execute(someQuery3)
    result3 = cursor.fetchall()

    cursor.execute(someQuery4)
    result4 = cursor.fetchall()
20
задан b10hazard 11 November 2011 в 20:59
поделиться