Большинство (хороших) оптимизаторов попытаются использовать индекс для предложения LIKE, где подстановочный знак не появляется первым. Если шаблон начинается с подстановочного знака, он может сделать гораздо меньше.
Если индекс является индексом B-дерева, а не хеш-индексом (системы ISAM обычно используют B-деревья), то для ограничения поиска по индексу можно использовать начальные символы предложения. Если система использует хеш-индексы, вы не сможете легко работать с частичными строками, если не создадите отдельные индексы для первого символа, затем для первых двух символов, а затем для первых трех символов ... столбца. Система ISAM может предоставить вам такую гибкость; большинство систем SQL этого не делают, и вам придется создавать столбцы из 1, 2, 3, ... символов, содержащие первые 1, 2, 3 ... символы поля номера детали.
Добавлено : в комментариях спрашивается "какая СУБД?", Что справедливо. Я могу поручиться за IBM Informix Dynamic Server (IDS) и Standard Engine (SE) в любой версии, на которую вы можете положиться. Я ожидаю, что IBM DB2 (LUW или z / OS) сделает это; Я ожидаю, что Oracle сделает это. Комментарии указывают на то, что PostgreSQL 8.0 и выше делает это - с оговорками. Я не могу ответить на мои собственные знания для Sybase, Ingres, MS SQL Server, Firebird или MySQL. С каждой СУБД могут быть связаны предупреждения о том, когда можно использовать индекс.
Обратите внимание, что если есть другой индекс, обеспечивающий избирательность, то он может использоваться вместо того, который обеспечивает доступ к поиску по шаблону.