Python sqlite3 não usando índice com LIKE

Eu tenho uma tabela com uma única coluna, que eu consulta de duas maneiras:

SELECT * FROM sequences WHERE seqs="blablabla"SELECT * FROM sequences WHERE seqs LIKE "blablabla%"

Para que essas consultas usem um índice, pareço precisar de dois índices (um para cada tipo de consulta), como:

CREATE INDEX test_nocol ON sequences(seqs) para a primeira consulta.CREATE INDEX seqs_index ON sequences(seqs COLLATE NOCASE) para a segunda consulta.

Isso é legal, mas adiciono o módulo sqlite3 do python3 e, em vez disso, começo a consultá-lo, que funciona com strings brutas, mas quando eu uso as ligações de parâmetro, oCOLLATE de repente, o índice não é mais usado:

>>> sql = 'explain query plan\n select seqs from sequences where seqs="blabla"'
>>> c3.execute(sql).fetchall()
[(0, 0, 0, 'SEARCH TABLE sequences USING COVERING INDEX test_nocol (seqs=?)')]
>>> sql = 'explain query plan\n select seqs from sequences where seqs=?'
>>> c3.execute(sql, ('hahahah',)).fetchall()
[(0, 0, 0, 'SEARCH TABLE sequences USING COVERING INDEX test_nocol (seqs=?)')]
>>> sql = 'explain query plan\n select seqs from sequences where seqs like "hahahah%"'
>>> c3.execute(sql).fetchall()
[(0, 0, 0, 'SEARCH TABLE sequences USING COVERING INDEX seqs_index (seqs>? AND seqs<?)')]
>>> sql = 'explain query plan\n select seqs from sequences where seqs like ?'
>>> c3.execute(sql, ('hahahah',)).fetchall()
[(0, 0, 0, 'SCAN TABLE sequences')]

O que eu estou fazendo errado aqui? Como esse é um back-end de serialização e não um banco de dados de aplicativos da web, acho que a ameaça ao usar seqüências brutas é menos grave, mas prefiro usar a formatação apropriada do SQL.

questionAnswers(1)

yourAnswerToTheQuestion