Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%)
|
Posiadam bardzo prostą bazę w postaci ID (INT) i Data UNIX(INT).
Tabela $arr służy do generowania wykresu. Niestety wierszy jest sporo (miliony) i skrypt raczej się wywala. Samo zapytanie wg phpmyadmin to kilka setnych sekundy tak więc prawdopodobnie problemy są ze skryptem PHP. Próbowałem przerzucić działanie na bazę:
Ale znów sam skrypt w phpmyadmin wykonuje się ponad 10 sekund. Dodając do tego obróbkę w PHP to znów wywołanie skryptu jest na granicy możliwości. Jakieś sugestie? Ten post edytował markonix 24.11.2011, 16:03:29 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 262 Pomógł: 39 Dołączył: 12.04.2004 Ostrzeżenie: (0%)
|
Nic dziwnego. Indeks na jedną kolumnę powoduje pobieranie wielu przypadkowych rekordów = dodatkowe operacje dyskowe. Dodaj jeden indeks na aid i date; spróbuj też bez sortowania, choć nie powinno być ono problemem.
-- Zmieniłbym też * w count na coś zaindeksowanego - chociażby date. Nie wiem czy MySQL jest w stanie to z tą gwiażdką zoptymalizować. -- Poczytałem i wygląda na to, że count(*) jest jednak ok. Ten post edytował Bags_Bunny 25.11.2011, 01:08:53 |
|
|
|
markonix Optymalizacja zapytania 24.11.2011, 00:32:19
Ilware dodaj index na kolumnie `aid` i spróbuj zm... 24.11.2011, 09:41:07
lukaskolista Jezeli index nie pomoze to proponuje utworzyc jaka... 24.11.2011, 10:30:45
markonix Indeksy były już nałożone - zapomniałem o tym wspo... 24.11.2011, 14:28:17
Bags_Bunny Pokaż strukturę tabeli, trochę przykładowych danyc... 25.11.2011, 00:18:26
markonix [SQL] pobierz, plaintext SELECT COUNT(*) A... 25.11.2011, 00:50:38
markonix Podwójny indeks działa bardzo dobrze - czas wykona... 29.11.2011, 14:46:07 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 13:01 |