![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 308 Pomógł: 13 Dołączył: 31.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam takie zapytanie
Wykonywanie tego zapytania trwa około 7 sek to sporo... zastanawiam się tylko czy jest ono mało optymalne czy to normalne? W tabeli data_kody jest około 180 tys wpisów, a w data_pracownicy około 1,2 tys. Czy da się jakoś to zoptymalizować? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 110 Pomógł: 10 Dołączył: 3.09.2006 Skąd: Bishop Auckland Ostrzeżenie: (0%) ![]() ![]() |
Czy wyświetlasz wszystkie te rekordy na jednej stronie? Zakładam, że nie, więc może warto byłoby użyć opcji LIMIT, by pobierać tylko dany przedział rekordów. Przy tak dużej bazie jest to myślę dość optymalne wyjście.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 308 Pomógł: 13 Dołączył: 31.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
W oryginale limit jest... ale nie daje to za dużo.... a raczej prawie nic
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
A masz pozakladane indeksy na kolumny po ktorych joinujesz?
-------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 308 Pomógł: 13 Dołączył: 31.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie, a czy to coś da i jakie ustawić? Chodzi Ci o primary itd. dla jasności?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 11 Dołączył: 24.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Indeksy skracają czas potrzebny na wyszukanie i odczytanie żądanych danych z bazy danych. W phpMyAdmin, pod tabelą z danymi, na dole masz możliwość utworzenia indeksów dla poszczególnych kolumn. Wystarczy tylko użyć opcji 'Utwórz indeks dla 1 kolumny -> Wykonaj'.
-------------------- Myślisz, że przeżyjesz swoje życie w blasku i chwale...
Lecz jest coś, co zmieni ci cały świat... Szczerość! |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 308 Pomógł: 13 Dołączył: 31.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Teraz mam jeszcze pytanie, jak zrobię te indexy i do tabeli dojdą nowe rekordy to nie będzie problemów, czy będą one dostępne?
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
A czemu mialy by nie byc dostepne? Indeks aktualizuje sie po zmianach w tabeli.
-------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 308 Pomógł: 13 Dołączył: 31.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dobra dzięki... już prawie kumam teraz mam tylko pytanie na które kolumny pozakładać indexy? Czytałem w google, ale nie do końca kumam te przykłady czy może ktoś w jednym zdaniu łopatologicznie mi to wyjaśnić. Przy okazji lekko zmieniłem zapis
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 444 Pomógł: 79 Dołączył: 26.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
na klucze obce
-------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 308 Pomógł: 13 Dołączył: 31.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
bardziej chodzi mi o to czy na wybierane czy też na te w porównaniach?
Nadałem dla Cytat idPracownika, idStacji, idArtykulu śmiga pięknie 0,06 sek ![]() |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 444 Pomógł: 79 Dołączył: 26.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
przy tak niewielkiej ilosc przeszukiwanych kolumn raczej nie zaszkodzi na wszystkie (biorace udzial w szukaniu)
-------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 308 Pomógł: 13 Dołączył: 31.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ok zaraz jeszcze po testuje. Nadałem jeden index dla 2 kolumn (idPracownika, idStacji) (UNIQUE) czy dobrze zrobiłem?
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 444 Pomógł: 79 Dołączył: 26.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
tak dopuki bedziesz szukal po obu kolumnach jednoczesnie
-------------------- |
|
|
![]()
Post
#15
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Ok zaraz jeszcze po testuje. Nadałem jeden index dla 2 kolumn (idPracownika, idStacji) (UNIQUE) czy dobrze zrobiłem? A czemu go dodales wlasnie tak? Jak po to zeby zezwolic na tylko jeden rekord o idPracownika i idStacji - to dobrze. Jak po to zeby przyspieszyc Joiny - to zle, bo powiniens dodac po 1 indeksie zwyklym na kazda z tych 2ch kolumn. -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zobacz takie rzeczy EXPLAIN i ANALYZE bo zapytania to specyficzna sprawa gdzie nie da się jednej konkretnej odpowiedzi udzielić. Jeśli zobaczysz że zapytanie korzysta z indeksów a czas będzie lepszy znaczy że idziesz w dobrym kierunku
![]() -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 09:04 |