Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak to optymalnie zrobić?, Bardzo proszę o pomoc.
Paziu
post 25.09.2010, 21:34:55
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 23.09.2007
Skąd: Tarnobrzeg

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


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
Go to the top of the page
+Quote Post
wookieb
post 25.09.2010, 21:37:49
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat
Wystarczy dodać index na uzyt_szacunek?

A spróbowałeś?


--------------------
Go to the top of the page
+Quote Post
Paziu
post 26.09.2010, 08:27:14
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 23.09.2007
Skąd: Tarnobrzeg

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


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.
Go to the top of the page
+Quote Post
wookieb
post 26.09.2010, 08:46:46
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




wygyneruj sobie troche losowych i sprawdzisz. Ale generalnie będzie ok.


--------------------
Go to the top of the page
+Quote Post
Paziu
post 26.09.2010, 09:01:24
Post #5





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 23.09.2007
Skąd: Tarnobrzeg

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


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

Ten post edytował Paziu 26.09.2010, 09:29:22
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.06.2025 - 00:47