Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyszukiwanie tekstu w dużej tabeli - wydajnosć, Im więcej rekordów tym wolnej
raczkowski1
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 26.07.2007

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


Witam
Mam problem z powolnym wyszukiwaniem tekstu w tabeli.
Moja tabela zawiera dwie kolumny tekstowe zawierające słowa kluczowe. Przy około 60 tyś. rekordów długo wyszukiwałem dane. Użyłem więc FULL TEXT INDEX co przyspieszyło wyszukiwanie, niestety przy liczbie rekordów około 170 tyś. znowu odczuwam spowolnienie zwracania wyników.
  1. SELECT DISTINCT c.`name` AS `nazwa`,c.`id` AS `cid`, `region`, `logo`,`keywords`,w.`name` AS `wojewodztwo`,`Segment`
  2. FROM `secofclient` soc
  3. LEFT JOIN `clients` c ON c.`id`=soc.`client`
  4. LEFT JOIN `wojewodztwa` w ON c.`region`=w.`id`
  5. WHERE (`section`='317' OR match(`keywords`) AGAINST ('Domy Kultury' )) AND
  6. c.`time`>=1379271427 ORDER BY c.`name` ASC LIMIT 0,20
  7. Time sql a = 1.28 secs


Działam na MySQL 5.5.31 i się zastanawiam czy nie przejść na postgresql więc pytanie co radzicie?? może są jakieś inne rozwiązania.

Pozdrawiam
Dario
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mmmmmmm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Pracuję i na MySQL i na postgreSQL. I do takich zapytań zdecydowanie polecam tę drugą bazę. Z moich obserwacji wynika że post zwalnia przy ok. 100 mln rekordów (tabela wielkości rzędu 10 Gb).
Aby przyśpieszyć możesz spróbować:
- wywalić LEFT
- wywalic OR (może przenieść do JOIN)
- wywalic ORDER
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: 7.10.2025 - 02:20