Ten tytuł to taki przykład przykładowy czy realne pytanie?
Bo jeśli realne to raczej bezużyteczne - chociaż tego nie widać.
- Wersja dla scenariusza "naprawdę chodzi o tytuł"
W tym scenariuszu szukany tytuł jest podawany przez użytkownika i nie wiadomo do końca co on tam poda.
Dlatego trzeba ustandaryzować tekst przed wyszukaniem (i przed zapisem do pola - w ten sam sposób):
- skompresować spacje wewnętrzne (5 spacji -> 1 spacja)
- obciąć spacje na początku i na końcu
- zamienić wszystkie litery np. na małe (albo zastosować COLLATE z stroną *_ci)
http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html
A potem użyć np. like + limit :
SELECT 1 FROM Releases WHERE TITLE like '%" + title + "%' LIMIT 0, 1;
Lub count(1) + like:
SELECT count(1) FROM Releases WHERE TITLE like '%" + title + "%';
To jest zapytanie nie indeksowane (wolne) - w każdej wersji. No chyba że zakładasz że użytkownik podał na pewno dobry początek - wtedy zakładasz indeks na polu TITLE i
nie używasz pierwszego procenta.
Żeby wykorzystać indeks w takim zapytaniu możesz też użyć "Full Text Search":
http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
- Wersja dla scenariusza "mam wartość primary key"
SELECT 1 FROM Releases WHERE id = " + id + ";
Najbardziej optymalna - o ile masz dostępną wartość unikalnego pola w tabeli (i masz na nim indeks - najlepiej PK).