Что было бы быстрее;поиск в таблице базы данных sqlite3 строки, первичный ключ которой равен определенной строке
ИЛИ
В Python я получаю все первичные ключи из таблицы базы данных sqlite3 (используязапрос) в качестве списка Python и используйте ключевое слово Pythons в , чтобы проверить, встречается ли конкретная строка в этом списке.
Я предполагаю, что спрашиваю, использует ли SQLite3 более продвинутый алгоритмнайти конкретную строку с первичным ключом, который я ищу, или было бы быстрее просто получить все первичные ключи самостоятельно и выполнить поиск с помощью python (или использовать мой собственный двоичный поиск, как только я получу их все)?
Код для выполнения в любом случае:
import sqlite3
conn = sqlite3.connect("d.db")
cur = conn.cursor()
isPresent = cur.execute( "SELECT target FROM stringList WHERE target='specificString';" ).fetchall()
return isPresent == None
// Alternate
primaryKeyList = cur.execute( "SELECT target FROM stringList;" ).fetchall()
return 'specificString' in primaryKeyList
// Or I can sort the list then use a binary search or other fast algorithm
primaryKeyList = cur.execute( "SELECT target FROM stringList;" ).fetchall()
//..sort primaryKeyList
primaryKeyList = sortList(primaryKeyList)
return binarySearch('specificString') == True
PS: Есть ли способ указать SQLite3, в каком порядке я хочу, чтобы строки были сохранены?Поэтому я всегда могу отсортировать строки в таблице в алфавитном порядке (по первичному ключу)?