Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak to optymalnie zrobić?
Forum PHP.pl > Forum > Bazy danych > MySQL
Paziu
Witam smile.gif Mam problem. Muszę optymalnie wyciągnąć z tabeli 20 rekordów o największej wartości w kolumnie uzyt_szacunek. Powiedzmy, że tabela ma 10.000 rekordów. Co zrobić, żeby zapytanie było wykonywane jak najszybciej?
Wystarczy dodać index na uzyt_szacunek? Czy trzeba zrobić coś innego?
Będę wdzięczny za pomoc.

Zapytanie wygląda w ten sposób:
  1. SELECT uzyt_id, uzyt_nazwa, uzyt_szacunek FROM uzytkownicy ORDER BY uzyt_szacunek DESC LIMIT 1,20
wookieb
Cytat
Wystarczy dodać index na uzyt_szacunek?

A spróbowałeś?
Paziu
Tak, dodałem go, tylko, że na razie w bazie mam kilka rekordów. A dodać kilka tysięcy zajęłoby mi trochę czasu, więc dlatego wolę zapytać ludzi którzy mają na ten temat pojęcie.
wookieb
wygyneruj sobie troche losowych i sprawdzisz. Ale generalnie będzie ok.
Paziu
Wielkie dzięki za pomoc winksmiley.jpg

Zapuściłem pętlę, stworzyłem 16k rekordów.

Czas wykonania zapytania:
  1. SELECT * FROM `ksiazki` GROUP BY autor


Przed dodaniem indeksu:
Pokaż rekordy 0 - 29 (16 390 wszystkich, Wykonanie zapytania trwało 0.1229 sekund(y))

Po dodaniu indeksu:
Pokaż rekordy 0 - 29 (16 390 wszystkich, Wykonanie zapytania trwało 0.0010 sekund(y))

Komentować chyba nie muszę smile.gif
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.