Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Efektywne przeszukiwanie dużej tablicy
loocek
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 18.04.2009

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


Hej,
Mam problem z przeszukaniem dużej tablicy. Tzn. mam w bazie ok 230k rekordów które pobieram do tablicy i następnie przez formularz na stronie pobieram znowu z 10k rekordów do sprawdzenia i teraz muszę zwyczajnie sprawdzić czy te z formularza występują w bazie. No i robiąc to najprościej w pętli czyli sprawdzając każdy z tych 10k czy jest w bazie 230k długo trwa. Sprawdzenie raptem 2k (a nie 10k) zajmuje już 18sek. No a 10k ? a może i 50k chcąc sprawdzić ? przecież to się będzie wykonywało z 1min...2min - bez sensu.

Czy znacie jakiś sposób na jak największe przyspieszenie tego sprawdzania ? Jakiś algorytm albo funkcje ?
pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 807
Pomógł: 1828
Dołączył: 11.03.2014

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


Pierwszą metodą jest użycie klauzuli IN. Ale tu ograniczony będziesz zmienną max_allowed_packet (co tu ma związek z długością zapytania).
Drugą metodą, szybszą niż IN w przypadku dużej ilości danych, będzie stworzenie tymczasowej tablicy z indeksem i zapytanie pomiędzy tymi dwiema tablicami.
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: 16.10.2025 - 08:12