Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wybieranie użytkowników według ostatnich logowań
pitbull82
post
Post #1





Grupa: Zarejestrowani
Postów: 167
Pomógł: 0
Dołączył: 30.04.2004
Skąd: Częstochowa

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


Witam

Sprawa teoretycznie prosta

Dla uproszczenia 2 tabele:

USER
id INT

LOGIN
id INT
id_user INT
date datetime


Chcę wybrać 100 ostatnio zalogowanych użytkowników wraz z datą logowania.

Teoretycznie sprawę powinno rozwiązać:

Kod
SELECT *, (SELECT max(date) FROM login WHERE id_user=u.id) AS 'max_date' FROM user u ORDER BY max_date DESC LIMIT 100


Dla małej bazy może rzeczywiście by się to sprawdziło ale ...

jeśli w tabeli user mamy 145360 rekordów, a w tabeli login 2774138 rekordów, zaczyna się mały problem...

Praktycznie nie starczyło mi nigdy cierpliwości, żeby zapytanie tego typu doprowadzić do końca - kilka minut na pewno nie wystarczy...


Rozumiem, że problem w tym wypadku może powodować ORDER, ale nawet kiedy pozbędę się ORDER BY, a zostawię samo limit 100, ba - nawet limit 1, czas oczekiwania na jakikolwiek rezultat jest niemiłosiernie długi.

Wersja MySQLa 4.1.22

Ma ktoś z Was pomysł jak to obejść?
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: 14.10.2025 - 21:52