Ваши запросы:
select A from table_A where A like 'A%'
и
select A from table_A where A like 'A%%'
^ optimizer will remove second redundant %
эквивалентны, оптимизатор удалит второй %
во втором запросе
так же, как этоудалит 1=1
из:
select A from table_A where A like 'A%%' and 1=1
Однако этот запрос сильно отличается:
select A from table_A where A like '%A%'
При использовании 'A%'
будет использоваться индекс, чтобы найти все, начиная сA
, как человек, использующий телефонную книгу, быстро ищет начало имени.Однако при использовании '%A%'
он будет сканировать всю таблицу в поисках чего-либо, содержащего A
, таким образом медленнее и без использования индекса.Например, если бы вам нужно было найти каждое имя в телефонной книге, содержащее букву «А», это заняло бы некоторое время!