![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 1 Dołączył: 4.05.2010 Ostrzeżenie: (20%) ![]() ![]() |
Witam,
Mamy problem z wydajnością wyszukiwania pełnotekstowego w serwisie aukcyjnym AUKCJE FM - ponad 700 000 rekordów aukcji. Użyto funkcji match against + LEFT OUTER JOIN Jak można zoptymalizować wyszukiwanie? Oto kod
nikt nie ma pomysłu? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
W Twoim kodzie nigdzie nie ma wyszukiwania pełnotekstowego. Jeśli znajduje się ono w $wher lub $varq to spróbuj przenieść to wyrażenie jako pierwszy warunek w wyszukiwaniu. Możesz również wkleić nam wynik EXPLAIN (czyli poprzedź wyszukiwanie słowem EXPLAIN).
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 1 Dołączył: 4.05.2010 Ostrzeżenie: (20%) ![]() ![]() |
Fakt, nie podałem dalszego kodu:
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Rozbicie w każdej aukcji wyrazów w tytule i tekscie oraz wrzucenie ich do nowej tabeli np
ID_AUKCJI | WYRAZ (lower) | TYPE Wyraz musi być trim() i strtolower() a w TYPE trzymany byłby typ (1-title, 2-text). Wtedy proste WHERE IN powinno być w miarę szybko, a ty jako zwrot z bazy dostaniesz ID aukcji. I z tych ID pobierzesz reszte danych. Pamiętaj tylko, że przy dodawaniu nowej aukcji albo jej edycji musisz uwzględniać nowe słowa kluczowe. A przy kasowaniu starych aukcji, należy je kasować. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 11:13 |