Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Długi czas trwania zapytania, match against
infor946
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 22.02.2006

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


Mam MySQL 5 i tabele z 1mln rekordów

ID varchar(150) PK
kol1 varchar(255)
kol2 varchar(255)
kol3 varchar(255)
kol4 varchar(255)
kol5 varchar(255)
keywords(text) fulltext

kolumna keywords może zawierać od kilkunastu do kilkuset słów kluczowych.

robie wyszukiwanie pełnotekstowe:

  1. "Select ID, kol1, kol2, kol3, kol4, kol5
  2. from tabela
  3. where match(keywords) against ('"słowo1" +"słowo2" +"słowo3" -"słowo4"' in boolean mode) LIMIT 0, 30"

i tu dzięki użyciu limitu baza śmiga. Ale potrzebna jest mi także calkowita liczba rekordów z takiego zapytania:
  1. "select count(ID)
  2. from tabela
  3. where match(keywords) against ('"słowo1" +"słowo2" +"słowo3" -"słowo4"' in boolean mode)"

i niestety ale to zapytanie w niektórych przypadkach trwa nawet kilka minut.
Przed updatem bazy kiedy miałem niecałe 200 tyś to drugie zapytanie działało bez zarzutu. A teraz zapytanie bez limitu do tej bazy raz trwa około 5 sek, raz 10 a czasmi kilka minut i nie mam pojęcia od czego to zależy.

Jak rozwiązać takie wyszukiwanie ? A może coś da się zrobić z samą bazą, w tej chwili mam plik konfiguracyjny my-large.ini a baza stoi razem z apache i php na PIV 3.GHz 1 GB RAM - po za tym żadne inne programy nie są uruchomione.

Ten post edytował infor946 15.03.2006, 15:25:08
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: 22.08.2025 - 11:56