Я пытаюсь прочитать количество строк в большой базе данных доступа и пытаюсь найти наиболее эффективный метод. Вот мой код:
driver = 'access driver as string'
DatabaseLink = 'access database link as string'
Name = 'access table name as string'
conn = pyodbc.connect(r'Driver={' + driver + '};DBQ=' + DatabaseLink +';')
cursor = conn.cursor()
AccessSize = cursor.execute('SELECT count(1) FROM '+ Name).fetchone()[0]
connection.close()
Это работает, и AccessSize
дает мне целое число с числом строк в базе данных, однако это занимает слишком много времени для вычисления (моя база данных содержит более 2 миллионов строк и 15 столбцов).
Я попытался прочитать данные через pd.read_sql
и использовал функциональность chunksize
для l oop и продолжал считать длину каждого чанка, но это также занимает много времени. Я также попытался .fetchall
в секции выполнения курсора, но скорость была похожа на .fetchone
Я бы подумал, что будет более быстрый метод для быстрого вычисления длины таблицы, поскольку я не требует, чтобы вся таблица была прочитана. Моя мысль состоит в том, чтобы найти значение индекса последней строки, поскольку это по сути количество строк, но я не уверен, как это сделать.
Спасибо