среда, 17 марта 2010 г.

SQLite and like

Есть у нас небольшая табличка на SQLite, и наблюдались при работе с ней дикие тормоза.

Выборка данных осуществлялась из нее запросом вида:

SELECT ID WHERE STRINGFIELD like "anything"

При этом поле STRINGFIELD являлось первичным ключом, и следовательно индекс по нему был, но скорость выполнения сильно падала пропорционально объему данных.

После RTFM оказалось что при использовании оператора like SQLite не использует индекс!

Замена на "=" дала огромный прирост скорости.

SELECT ID WHERE STRINGFIELD = "anything"

Комментариев нет: