Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Proste zapytanie prosta optymalizacja :)
little_MASTER
post 25.10.2011, 11:30:14
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 8.12.2008

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


Witam wszystkich!
Mam malutki problem odnośnie zapytania.
Otóż mam zapytanko:
  1. SELECT r.reg_nazwa AS region, w.woj_nazwa, o.typ, o.nazwa, o.ulica, o.kod, o.miasto, o.email, o.telefon, o.www, o.opis, o.notatki, o.cenaszkolenia, o.zdjecie FROM osoby o LEFT JOIN regiony r ON o.reg_id=r.reg_id LEFT JOIN wojewodztwa w ON o.woj_id = w.woj_id WHERE wew_id='E000001'

Które wybiera jakieś tam szczegóły z tabeli osoby, a że region jest jako id to wypadałoby pobrać nazwę z innej tabeli, podobnie dla województw.
Ogółem zapytanie działa smile.gif

Ale...
To jedno zapytanie dla jak na razie 100 rekordów w tabeli osoby wykonuje się w 0,0006 sekundy (czyli dość szybko w/g mnie).

Tylko zastanawiam się jak to coś zoptymalizować, tzn same zapytanie, czy muszę robić dwa razy JOIN i czy koniecznie musi być LEFT, może jakiś inny.

A tak na marginesie czy w przypadku takich zapytań ma znaczenie jak ustawiłem indexy?

Dla tabeli osoby mam jako indexy: wew_id jako primary, reg_id i woj_id jako pomocnicze.

W razie potrzeby przedstawię strukturę wizualnie, choć wydaje mi się że jest ona dość zrozumiała smile.gif

Prosiłbym o pomoc, wykładowca dość poważnie ocenia optymalizację zapytań, a chciałbym to jakoś spokojnie zaliczyć tongue.gif

Z góry dzięki za pomoc.

//EDIT
Stworzyłem jeszcze takie zapytanko:
  1. SELECT r.reg_nazwa AS region, w.woj_nazwa, o.typ, o.nazwa, o.ulica, o.kod, o.miasto, o.email, o.telefon, o.www, o.opis, o.notatki, o.cenaszkolenia, o.zdjecie FROM osoby o, regiony r, wojewodztwa w WHERE o.reg_id=r.reg_id AND o.woj_id = w.woj_id AND wew_id='E000001'

I teraz kolejne pytanie: które z tych dwóch jest lepsze? Które w przypadku dużej ilości rekordów będzie lepsze?

Wiem że mogę wygenerować 100tys albo i więcej rekordów i to sprawdzić, ale jednak wolałbym poradzić się doświadczonych koderów najpierw wink.gif

Ten post edytował little_MASTER 25.10.2011, 11:37:00
Go to the top of the page
+Quote Post

Posty w temacie
- little_MASTER   Proste zapytanie prosta optymalizacja :)   25.10.2011, 11:30:14
- - nospor   Same joiny masz zrobione poprawnie. Co do indeksów...   25.10.2011, 11:36:40
- - luckyps   Cytat(little_MASTER @ 25.10.2011, 12:30...   25.10.2011, 11:41:45
- - little_MASTER   Tak wygląda tabelka z profilowania. Czy korzysta w...   25.10.2011, 11:42:21
- - nospor   Prosiłem o EXPLAIN a nie ok profilowanie   25.10.2011, 11:48:15
|- - little_MASTER   Cytat(nospor @ 25.10.2011, 12:48:15 )...   25.10.2011, 11:58:44
- - nospor   No i już widzisz które lepsze Jedno pobiera 1 rek...   25.10.2011, 12:03:10
- - luckyps   Cytat(little_MASTER @ 25.10.2011, 12:42...   25.10.2011, 12:04:51
|- - little_MASTER   Cytat(luckyps @ 25.10.2011, 13:04:51 ...   25.10.2011, 12:31:01
- - nospor   Co to za typy, ile ich będziesz miał, czy one są d...   25.10.2011, 12:38:27
- - little_MASTER   Typy to tak jakby kategorie, tzn osoba może być le...   25.10.2011, 13:47:19
- - nospor   To musisz dodać tabelę łączącą osobę z typem: osob...   25.10.2011, 13:49:15
|- - little_MASTER   Cytat(nospor @ 25.10.2011, 14:49:15 )...   25.10.2011, 14:55:27
- - piotr.kazmierczak   Ogólnie jeżeli zależy Ci na prędkości działania ba...   25.10.2011, 15:51:47
- - little_MASTER   Wszystko jest w tabeli użytkownicy, jedyne co potr...   25.10.2011, 18:33:52
- - piotr.kazmierczak   Jeżeli to na jakieś zaliczenie to pomiń moją propo...   25.10.2011, 22:32:18
- - little_MASTER   Cytat(piotr.kazmierczak @ 25.10.2011, 23...   26.10.2011, 09:49:37


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: 14.08.2025 - 06:12