![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 366 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Czesc, mam takie pytani: mam tabele w ktorej jest dosc sporo danych. Mam przygotowany widok ktory mi z niej wyciaga jakies dam dane, max (czas), group by 2 pola oraz 1 join tam jest. Widok wyglada mniej wiecej tak:
Zastanawiam sie, co w tym przypadku bedzie szybsze - czy za kazdym razem robienie select'a z tej tabeli (czyli parta kodu zaczynajaca sie od SELECT max..) czy tez utowrzenie takiego widoku i robienie z niego selecta. Czy ten widok nie zabiera mi jakiegos cennego czasu? Lub czy moge sprawdzic (jak?) rzeczywisty czas wykonania zapytan? Bo z tego co sie orientuje to mysql cachuje zapytania, wiec wyniki ktore dostaje nie sa miarodajne. Bede wdzieczna za wskazowki, pzdr, misty |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
minimalnie szybciej (prawdopodobnie kwestia optymalizatora i tym podobnych, w razie czego w profilowaniu da sie to dokladnie sprawdzic)
jakiego rzedu sa te czasy? bijemy sie o sekundy? milisekundy? tak naprawde musialbym wynik explain'a zobaczyc by ocenic, ale czysto teoretycznie, sprawca najwiekszego obciazenia w kolejnosci to: o ile dobrze widze - potrzebujesz do tego tabel tymczasowych (w explain powinno byc to widac), jesli w tabeli masz duzo danych - tabele te musza byc zapisane na dysku czyli masz extra operacje IO operacje wyliczeniowe(max - w jakim formacie masz ta kolumne?), nastepnie agregujace (group by) oczywiscie to co napisalem zalezy od tego jakie masz tabele, ile danych, jakie indexy (jakie zalozone - a pamietaj ze index potrafi spowalniac aplikacje) tak naprawde od calej masy czynnikow.. powiedz mi do czego to potrzebujesz? do aplikacji webowej? jak bardzo potrzebujesz aktualnych danych, i czy sa one czesto modyfikowane ? byc moze najlepszym bedzie zastosowanie tabel tymczasowych... ale to juz kwestia z projektowania aplikacji/bazy jesli mozesz - podaj strukture tych tabel, bedzie latwiej odpowiedziec. ewentualnie, jesli masz taka mozliwosc rozbij to zapytanie na kilka mniejszych, wykorzystaj wielowatkowosc mysql'a, rozwiazan jest naprawde przynajmniej kilka. j. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 20:06 |