Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [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.



--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
luke18dg
post
Post #2





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 26.03.2011
Skąd: Dąbrowa Górnicza

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


Jezus to po pierwsze. Co chciałbyś osiągnąć? Opis teoretyczny po co tworzysz takie skomplikowane zapytania?
Go to the top of the page
+Quote Post
miccom
post
Post #3





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


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
fragov
post
Post #4





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 19.11.2011

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


  1. SELECT * FROM `users` JOIN `citites` ON `users`.`city_id` = `cities`.`id` WHERE ... GROUP BY `cities`

W where'a wrzucasz co chcesz i gotowe.
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 Aktualny czas: 20.08.2025 - 10:46