![]() |
![]() ![]() |
![]() |
![]()
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 |
|
|
![]()
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.
|
|
|
![]()
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? |
|
|
![]()
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.
|
|
|
![]()
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?! |
|
|
![]()
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' |
|
|
![]()
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?
|
|
|
![]()
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 |
|
|
![]()
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')
-------------------- |
|
|
![]()
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?
|
|
|
![]()
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()
|
|
|
![]()
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
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
GROUP BY `data`?
-------------------- |
|
|
![]()
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 |
|
|
![]()
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. -------------------- |
|
|
![]()
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 ?
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 29.06.2025 - 12:15 |