![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 9.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
pytałem na innych forach, nikt mi jeszcze nie pomógł w sposób satysfakcjonujący...
napisałem sobie skrypt galerii, podział jest na kategorie (bez zdjęć) i foldery (zawierające zdjęcia i przypisane do dokładnie jednej kategorii). Każde zdjęcie posiada w swoim rekordzie (w bazie) zarówno ID folderu, jak i ID kategorii. Chciałbym jak najmniejszym obciążeniem bazy wyciągnąć listę kategorii z losowymi zdjęciami. Podczas, gdy samo wyciągnięcie listy to pikuś (SELECT *), to wyciągnięcie tych losowych zdjęć robi schody :/ struktura tabeli ze zdjęciami: - id int primary - kategoria int index - folder int index próbowałem m.in. tak:
ale nic nie pomaga - nie ma pożądanego efektu "losowania". Chce, zeby z kazdej kategorii po jednym zdjeciu wylosowal... Podzapytania odpadają, nie mam też ochoty na łączenie tabel - wydajność... |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy to zapytanie będzie działało znacznie szybciej, ale nie ma łączenia tabel ani jako takich podzapytań - czyli tak jak chciałeś. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 9.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
na pewno będzie działało szybciej. Obawiam się, że to optymalne rozwiązanie, wielkie dzięki
mimo wszystko chyba się nie obejdzie bez cacheowania - w ten sposób (o ile dobrze rozumiem zapytanie) jest wczytywana cała tabela :| edit: pytanie tylko - "GROUP_CONCAT" wczytuje cały wynik, czy tylko przechowuje "wskaźnik" na rekordy? kluczowa sprawa, jeśli chodzi o wydajność (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował tomkiewicz 9.06.2007, 22:23:23 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 01:19 |