По-видимому, для поиска по подстроке используется индекс по этому столбцу.
Запуск
explain plan for select * from message where id like 'foo:%'
дает мне
…
access=INDEX PRED
…
, как при простом сравнении знака равенства , Кажется, это работает для любой подстроки, например, '%foo%'
, а не только для начала строки.
Для сравнения, если я попробую то же самое для столбца data
(который не проиндексирован и, следовательно, требует полное сканирование таблицы), я получаю
…
access=FULL SCAN
…