У меня есть следующая таблица:
CREATE TABLE notes (noteId INTEGER PRIMARY KEY ASC, note, note_length, count, unique(note) on conflict abort)
Она содержит 3 миллиона строк.
Затем я выполняю следующую команду:
def getDistintNoteCountList(note_length):
with sqlite3.connect(r'./note_database') as connection:
cursor = connection.cursor()
cursor.execute('select distinct count from notes where note_length = ?', [note_length])
return [i[0] for i in cursor]
Однако требуется30 секунд для выполнения этой функции, когда возвращаемый список имеет размер около 20. Это разумно, учитывая, что у меня 3 миллиона записей или я что-то сделал неправильно?
Спасибо,
Барри
РЕДАКТИРОВАТЬ
Добавлено:
cursor.execute("create index countIndex on notes (count)")
cursor.commit()
И перезагрузить данные в базу данных.Кажется, все так же медленно.