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. |
|
|
|
![]() |
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:
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 |
|
|
|
tabbi Wyszukiwanie LIKE mysql duża tabela 18.01.2012, 01:26:10
Sephirus Popieram @up
MATCH AGAINST powinno być szybsze i ... 18.01.2012, 08:49:41
gothye Jest jeszcze sphinx , ostatnio zastosowałem go do ... 18.01.2012, 09:16:35 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 17:11 |