Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP/SQL]Zapytanie długo się wykonuje
Forum PHP.pl > Forum > Bazy danych > MySQL
Que
Witam jakaś tam klasa i funkcja pokazująca podobne tematy:

  1. <?php
  2. function getsimilar($tytul)
  3. {
  4. print_r($tytul);
  5. $qa = "SELECT title, postid FROM baza_posty WHERE title LIKE '".$tytul."' LIMIT 5";
  6. $r = $this->dbconnect->getAll($qa, DB_FETCHMODE_ASSOC);
  7. if(DB::isError($r))
  8. {
  9. echo $r->getMessage();
  10. exit(); 
  11. }
  12. else
  13. {
  14. $this->_similar = $r;
  15. return $this->_similar;
  16. }
  17. ?>


Zwraca podobne - w 5 minut:)
Baza ma 600k rekordów, co mogę z tym zrobić? dziękuje za pomoc.
Cysiaczek
Może to nie to, ale spróbuj dać LIKE '%".$tytul."%'
600k rekordów to jeszcze nie jest jakaś zatrważająca liczba. Może wina leży po stronie samej tabeli? Spróbuj dać na niej REPAIR etc.

Pozdrawiam.
Que
Hmmm...

Struktura tabeli
id(init) - auto (ale nie jest id po koleji tylko np 5,23,623,4 itd)
title(varchar)
text(text)

Hmm... z % to samo sad.gif
Jeszcze gorzej jest z losowym wybieraniem (RAND()) z SQL'a bo wtedy ze 10 min pokazuje 5 losowych.
przybol
Jezeli nie masz indexu na title to go dodaj, pozniej ponownie przeprowadz REPAIR na tabeli. Ja mam doczynienia z tabelami gdzie jest powyzej 2 milionow wpisow i dziala to szybko, grunt to dobrze zalozone indexy na odpowiednich kolumnach.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.