![]() |
![]() |
![]()
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:
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 (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/smile.gif) Prosiłbym o pomoc, wykładowca dość poważnie ocenia optymalizację zapytań, a chciałbym to jakoś spokojnie zaliczyć (IMG:style_emoticons/default/tongue.gif) Z góry dzięki za pomoc. //EDIT Stworzyłem jeszcze takie zapytanko:
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 (IMG:style_emoticons/default/wink.gif) Ten post edytował little_MASTER 25.10.2011, 11:37:00 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
To musisz dodać tabelę łączącą osobę z typem:
osoba_typ ID_OSOBA ID_TYP i wywalic to durne pole typ z osoby (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 8.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
To musisz dodać tabelę łączącą osobę z typem: osoba_typ ID_OSOBA ID_TYP i wywalic to durne pole typ z osoby (IMG:style_emoticons/default/smile.gif) Też tak myślałem, tzn miałem na początku tak zrobione (IMG:style_emoticons/default/smile.gif) Całe szczęście jakaś kopia jest to przywrócę. A da się jednym zapytaniem pobrać i informacje o osobie i typy? Ma to sens? Czy dwoma zapytaniami? Czyli jak mamy tabele: Osoby ----------------------- |id| imie|nazwisko| |1|Tomek| xxx| |2| Karol| xxx| Typy ---------------- |id| nazwa| |1| kierowca| |2|nauczyciel| ... Osoby_typy --------------------- |id_osoby|id_typu| | 1| 1| | 2| 1| | 2| 2| O osobie pobieram tak jak wcześniej tzn po id. A typy mogę pobrać tak:
Czy jakieś rozwiązanie byłoby lepsze? Chodzi o to że osób będzie dużo, jak i typów i żeby przy zaliczeniu mi się to nie wysypało albo nie zamuliło :/ Dużo osób to np 100tys danych testowych :/ |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 13:06 |