Próbowałem uzyskać sqlite, aby użyć indeksu z niczym bez skutku. Spróbowałem zebrać nocase i wciąż nie miałem szczęścia. Każdy ma jakieś pomysły, jak uzyskać sqlite, aby zrobić jak uderzenie w indeks. Dzięki z górysqlite nie używa indeksu z podobnym zapytaniem
DROP TABLE IF EXISTS "test";
DROP TABLE IF EXISTS "test2";
DROP TABLE IF EXISTS "test3";
create table test(name TEXT COLLATE NOCASE);
create table test2(name TEXT);
create table test3(name TEXT);
create index idx_test_name on test(name);
create index idx_test2_name on test2(name);
create index idx_test3_name on test3(name COLLATE NOCASE);
insert into test(name) values('dan');
insert into test2(name) values('dan');
insert into test3(name) values('dan');
--explain query plan select * from test where name like 'test%'
-- explain query plan select * from test2 where name like 'test%'
-- explain query plan select * from test3 where name like 'test%'
Posiadanie indeksu nie gwarantuje, że zostanie użyty. –