Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyszukiwanie LIKE mysql duża tabela
tabbi
post
Post #1





Grupa: Zarejestrowani
Postów: 150
Pomógł: 3
Dołączył: 30.10.2010

Ostrzeżenie: (0%)
-----


Witam,

chce w czasie rzeczywistym wyszukiwać rekord w tabeli z 4 mln rekordów. Do tego stosuje LIKE jednak zapytanie trwa koło 10 sekund i zazwyczaj przekracza dopuszczalną pamięć.

Struktura tabeli:
id int(10) UNSIGNED AUTO_INCREMENT
id_group int(11) UNSIGNED
name varchar(145) utf8_general_ci
code varchar(45) utf8_general_ci
car varchar(145) utf8_general_ci

Mam indeksy typu BTREE na name,code,id_group

Czy da radę to przyspieszyć ? Niestety brak unikatowych rekordów.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wizu
post
Post #2





Grupa: Zarejestrowani
Postów: 127
Pomógł: 15
Dołączył: 16.02.2008
Skąd: Sanok

Ostrzeżenie: (0%)
-----


Jeśli wyszukujesz w taki sposób:
  1. LIKE %search%

To zastanów się, czy nie możesz zrezygnować z pierwszego %. Wyszukiwanie LIKE search%, korzysta z indeksów, natomiast LIKE %search% już nie.

Próbowałeś z indexem FULLTEXT i MATCH() AGAINST()? Również powinno całkiem nieźle poprawić szybkość wyszukiwania.

Podaj jakiś przykład danych z których wyszukujesz i kolumnę po której szukasz.

Ten post edytował wizu 18.01.2012, 01:43:48
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 17:11