Pola w tabeli są następujące:
varchar (255)
varchar2 (255)
bigint (20)
Obecnie mam primary key oraz fulltext przypisany na pierwszego varchar.
I teraz, pytanie, które zapytania wykonają się szybciej?
Wariant a)
Cytuj
I tak, jeżeli znajdzie przypasowanie (varchar jest unikalnym rekordem, lecz nie ma indeksu unique obecnie) to wykonuje
Cytuj
i jeżeli nie znajdzie dopasowania to
Cytuj
I tak mam obecnie, jednakże rozważam zmianę.
Wariant
Nadać na pole varchar unique key - i tak jest unikalny, i następnie zaczynając od zapytania INSERT INTO [...] - i jeżeli mysql zwróci błąd o duplikacji klucza wtedy dać polecenie UPDATE [...] - pozwoliłoby uniknąć tego SELECT'a.
Optymalizacja - nawet mała - jest tutaj bardzo potrzebna, gdyż dziennie tychże zapytań wykonuje się kilkadziesiąt tysięcy.













