Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Optymalizacja MYSQL
miccom
post
Post #1





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

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


  1. SELECT * FROM dane WHERE urlop=0 AND (etat=0 OR (etat=1 AND id_usera= '.$user_id.' ) ) AND mapa IN ( SELECT mapa FROM dane WHERE miejscowosc ='. $miejscowosc_usera.' UNION SELECT miejscowosc FROM wojewodztwa WHERE miejscowosc ='. $miejscowosc_usera.' GROUP BY miejscowosc )


Witam.
Po analizie kodu wychodzi na to, że powyższe zapytanie ( przy około 2500 rekordów w tabeli dane i 20 rekordów tabeli wojewodztwa ) zajmuje jakąś sekundę.
Może to niewiele, ale jednak, a strach pomyśleć jak będzie wyglądało zapytanie przy większej ilości rekordów.

Czy macie jakieś propozycje, jak zoptymalizować takie zapytanie?

Pozdrawiam i proszę o pomoc.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
miccom
post
Post #2





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

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


Ok, mam dwie tabele.
Chcę wyciągnąć z jednej tabeli rekordy spełniające wskazane warunki...
Jak inaczej mam to opisać?

W jednej tabeli mam dane userów, w drugiej ich miasta.
I chcę wyciągnąć wszystkich userów, który są w "pracy" ( urlop=0) gdzie user nie ma przydzielonego etatu lub ( dane usera przeglądającego który ma etat) który dodatkowo znajduje się w danej miejscowości na delegacji, oczywiście pogrupowane wg miejscowości.


Ten post edytował miccom 3.03.2013, 21:08:55
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: 9.10.2025 - 05:24