pandas.read_sql с sqlite очень медленно - PullRequest
0 голосов
/ 27 января 2019

Я использую pandas.read_sql с базой данных sqlite, и это очень медленно. У меня есть таблица с 800 строками и 49 столбцами (тип данных только TEXT и REAL), и для извлечения данных из базы данных в фрейм данных требуется более 3 минут. DB-File и скрипт Python работают на одной машине и в одной файловой системе.

Есть ли способ ускорить pandas.read_sql?

Это фрагмент кода:

        self.logger.info('{} - START read_sql: {}'.format(table))
        result = pd.read_sql("select * from {}".format(table), self.dbconn,
                           index_col=indexcolname)
        self.logger.info('{} - END read_sql: {}'.format(table))

1 Ответ

0 голосов
/ 27 января 2019

Я нашел решение сам: Проблема заключалась в том, чтобы использовать соединение как экземпляр attribut: self.dbconn Если я всегда инициирую новое соединение и закрываю его в конце, производительность абсолютно не проблема!

    conn = self.create_connection(self.db_file)

    self.logger.info('{} - START from sql: {}'.format(self.botid, table))
    Result = pd.read_sql("select * from {}".format(table), conn,
                           index_col=indexcolname)
    self.logger.info('{} - END from sql: {}'.format(self.botid, table))
    conn.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...