Tomasz Faszyński

Tomasz Faszyński Specjalista ds.
programowania

Temat: SQL (Oracle) - LIKE vs znak równości

Cześć,

Mam tabelkę, gdzie kluczem głównym jest string. Czy jest różnica w szybkości działania

select * from Tabela where id = '123'


a zapytaniem z LIKE (bez wildcard)

select * from Tabela where id LIKE '123'
Ten post został edytowany przez Autora dnia 09.01.17 o godzinie 18:46

konto usunięte

Temat: SQL (Oracle) - LIKE vs znak równości

Dobra rada na przyszłość. NIGDY nie rób takich mikro optymalizacji. Powiedzmy że na Twoim silniku LIKE będzie z jakiegoś powodu szybsze. Musisz się martwić o znaki specjalne jak % i _ za każdym razem. Zwłaszcza że na ogół funkcje które robią escape stringa przekazanego od usera nie dodają \ przed nimi. Musisz się o to zawsze troszczyć ręcznie.
Później dochodzi sytuacja gdzie bd dostaje swoje optymalizacje tak żeby where działał szybciej (like porównuje znak po znaku) i w teorii znowu musisz poprawiać swój kod co jest bez sensu.

Także stosuj LIKE i = wg zastosowania a nie wg jakiś mikro optymalizacji. Wątpię żeby narzut był tak duży w jednym z wypadków żeby miało to w Twoim projekcie znaczenie.

A tak poza tym to = z tego co pamiętam jest szybszy bo też jest prostszy w działaniu.

Następna dyskusja:

Przycisk "like" i publikowa...




Wyślij zaproszenie do