Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> długość ładowania danych z mysql do porównywarki
maksik
post 28.01.2015, 21:10:15
Post #1





Grupa: Zarejestrowani
Postów: 206
Pomógł: 0
Dołączył: 26.09.2012

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


Mam problem z szybkością ładowania się danych gdyż trwają kilka sekund przy stworzonej porównywarce danych, porównującą z danych uzyskanych w ciągu 5 dni, działa ona następująco.

Składa się ona z 5 kolumn : Dziś | wczoraj | -2 dni | -3dni | -4dni

Najpierw pobierana jest poprzez SELECT DISTINCT kolumna "Dziś" z Limit 50 metodą while, przy czym w każdym rekordzie jest wykonywane kolejne zapytanie pobierające specjalny kod identyfikujący zmienną oraz sprawdzający jej daną z wczoraj, następnie kolejne zapytanie sprawdza z przedwczoraj itd.

Reasumując ładuje 50 rekordów, przy każdym są wykonywane 4 dodatkowe zapytania co daje ok. 200 zapytań na raz, trwa to dosyć długo bo nawet 8 sekund czy da się to w jakiś sposób przyśpieszyć, czy obrana metoda pobierania danych jest zła?

Ten post edytował maksik 28.01.2015, 21:11:15
Go to the top of the page
+Quote Post
rad11
post 28.01.2015, 21:18:39
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Mozesz uzyc cache.
Go to the top of the page
+Quote Post
SpiritCode
post 29.01.2015, 07:59:01
Post #3





Grupa: Zarejestrowani
Postów: 167
Pomógł: 35
Dołączył: 29.12.2014
Skąd: Otwock

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


Dlaczego nie pobierzesz tych danych jednym zapytaniem?
W sensie, dlaczego pobierasz każdą kolumnę osobno?
Go to the top of the page
+Quote Post
maksik
post 29.01.2015, 09:37:40
Post #4





Grupa: Zarejestrowani
Postów: 206
Pomógł: 0
Dołączył: 26.09.2012

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


każdy wiersz składa się z czterech kolumn, mając pierwszy wynik, musze na jego podstawie znaleźć następny, później mając dane tego drugiego wyniku musze znaleźć trzeci itd.

Go to the top of the page
+Quote Post
SpiritCode
post 29.01.2015, 10:22:19
Post #5





Grupa: Zarejestrowani
Postów: 167
Pomógł: 35
Dołączył: 29.12.2014
Skąd: Otwock

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


Nie no... Dalej nie rozumiem... Albo jestem głupi albo to co piszesz nie ma zbytnio sensu. Ale mniejsza...

Z tego co rozumiem masz tabelę z kolumnami z danymi z 5 dni.
Pobierasz dzień dzisiejszy i potem dociągasz poprzednie dni osobnym zapytanie? Po co?!
Go to the top of the page
+Quote Post
maksik
post 29.01.2015, 10:28:16
Post #6





Grupa: Zarejestrowani
Postów: 206
Pomógł: 0
Dołączył: 26.09.2012

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


Jest to porównywarka który domyślnie w jednej kolumnie wyświetla wyniki z dzisiejszego dnia, nastepnie w pozostałych 4 kolumnach wybieram datę wyników które porównać z poprzednimi, dalsze działałnie opisałem wcześniej.
Jeżeli chodzi o jedno zapytanie w takim razie mogę połączyć jakoś w jedno zapytanie tego typu SELECT który teraz jest oddzielnie po to, aby odpowiadał każdej kolumnie z różnicą dat?
SELECT id WHERE Numer='x" and Data '2015-01-28'
SELECT id WHERE Numer='x" and Data '2015-01-27'
SELECT id WHERE Numer='x" and Data '2015-01-26'
SELECT id WHERE Numer='x" and Data '2015-01-25'
Go to the top of the page
+Quote Post
SpiritCode
post 29.01.2015, 10:35:58
Post #7





Grupa: Zarejestrowani
Postów: 167
Pomógł: 35
Dołączył: 29.12.2014
Skąd: Otwock

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


A BETWEEN Ci nie odpowiada?
Go to the top of the page
+Quote Post
maksik
post 29.01.2015, 10:54:33
Post #8





Grupa: Zarejestrowani
Postów: 206
Pomógł: 0
Dołączył: 26.09.2012

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


no tak tylko BEETWEEN ustala zakres a ja chcę pobrać dowolnie pojedyńcze wartości "id" jaka jest np. dla date='2015-01-29' , date='2015-01-25', date='2015-01-23'

czyli wg. tego pobierze mi kolejno wartości od 23-29 a ja nie chce z dni które nie były uwzględnione jak np. 01-28.

Ten post edytował maksik 29.01.2015, 10:54:55
Go to the top of the page
+Quote Post
markuz
post 29.01.2015, 11:17:44
Post #9





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


Poczytaj o IN np. WHERE `data` IN ('2015-01-25', '2015-01-24', '2015-01-28')


--------------------
Go to the top of the page
+Quote Post
maksik
post 29.01.2015, 12:05:46
Post #10





Grupa: Zarejestrowani
Postów: 206
Pomógł: 0
Dołączył: 26.09.2012

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


tylko czy można w SELECT to jakoś rozdzielić, chodzi o to aby można było wyniki zapytania umieścić w dowolnej mieszanej kolejności?
Go to the top of the page
+Quote Post
phpion
post 29.01.2015, 12:07:14
Post #11





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




ORDER BY RAND()
Go to the top of the page
+Quote Post
maksik
post 29.01.2015, 12:08:31
Post #12





Grupa: Zarejestrowani
Postów: 206
Pomógł: 0
Dołączył: 26.09.2012

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


nie nie chodzi o losową kolejność tylko, żebym mógł w dowolnym miejscu zamieścić wynik przypisany dla daty dzisiejszej, w innym dla wczorajszej itd, aby każdy miał oddzielną zmienną przypisaną dla danej daty
Go to the top of the page
+Quote Post
markuz
post 29.01.2015, 12:11:53
Post #13





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


GROUP BY `data`?


--------------------
Go to the top of the page
+Quote Post
maksik
post 29.01.2015, 12:19:55
Post #14





Grupa: Zarejestrowani
Postów: 206
Pomógł: 0
Dołączył: 26.09.2012

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


tak, ale to założy, że chcę od najnowszej daty sortować lub na odwrót, a w sposób taki by najpierw wyświetlić kolejno 01-28, 01-29, 01-25 ?
rzecz w tym że porównarka ma mieć możliwość wybrania nie chronoligcznie sortowanych dat, a w dowolnej kolejności

Ten post edytował maksik 29.01.2015, 12:20:24
Go to the top of the page
+Quote Post
markuz
post 29.01.2015, 12:34:23
Post #15





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


co ma GROUP BY do sortowania? nic. Staram Ci się pomóc ale im dalej tym mniej Cię rozumie.
Pokaż mi kod oraz zapytania z których korzystasz.


--------------------
Go to the top of the page
+Quote Post
marekpzn1987
post 2.02.2015, 13:27:29
Post #16





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 31.12.2014

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


a wiecie może gdzie znaleźć jakiś kurs odnośnie samego sqla ?
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 Wersja Lo-Fi Aktualny czas: 29.06.2025 - 12:15