Улучшите производительность сам, участвуют в sqlite

У меня есть таблица с 21 столбцом (все целые числа) идентификатор, c1, c2... c20 и что выбрать идентификаторы для строк, которые имеют те же значения в столбцах...

таким образом, строка 1 будет соответствовать строке 10 если строка 1 c1 = строка 10 c1 и строка 1 c2 = строка 10 c2... и так далее.

Это - то, на что похож запрос:

 select r1.id, r2.id 
 from tbl r1, tbl r2  
 where 1=1 and r1.c1=r2.c1 and r1.c2=r2.c2 and 
         ..... r1.c20=r2.c20 and not r1.id=r2.id 

Я в настоящее время использую сам соединение, но это слишком медленно (20 secs для 10 000 строк). У меня есть индексы установки на столбцах (?), у меня есть ~ 1 миллион строк Спасибо

1
задан Daniel Vassallo 21 July 2010 в 05:30
поделиться

2 ответа

Вы пробовали использовать единый индекс для всех 20 столбцов?

1
ответ дан 2 September 2019 в 22:53
поделиться

Возможно, вам захочется создать дополнительный столбец, в котором вы сможете хранить хэш всех значений в строке. Затем просто проиндексируйте этот столбец и отфильтруйте строки, соответствующие хэшу из 20 искомых значений.

1
ответ дан 2 September 2019 в 22:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: