Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 289 Pomógł: 1 Dołączył: 2.11.2007 Ostrzeżenie: (0%)
|
Witam
Otrzymałem informację, że moje konto powoduje za długie zapytania do bazy danych mysql. Mam jednak pewne wątpliwości, gdyż moim zdaniem wcale nie powinny powodować obciążenia. Przykładowo: Kod UPDATE kanaly SET odslon=odslon+N WHERE id=N Zapytanie wykonane 27 razy na bazie d4548dn_strona, wartosci średnie: query time: 11.48s, lock time 0.00s, rows sent 0.0, rows examined 0.0 Kod SELECT id, nazwa, opis, odslon FROM kanaly WHERE kat=N ORDER BY odslon DESC Zapytanie wykonane 3 razy na bazie d4548dn_strona, wartosci średnie: query time: 7.33s, lock time 6.33s, rows sent 24.7, rows examined 102.7 Kod SELECT * FROM kanaly WHERE id=N Zapytanie wykonane 2 razy na bazie d4548dn_strona, wartosci średnie: query time: 8.00s, lock time 0.00s, rows sent 1.0, rows examined 1.0 Dodam, że strona posiadała z 800uniq/dzień i ok. 100 rekordów w tabeli "kanaly". Podstrony z danymi zapytaniami wczytują się u mnie błyskawicznie. Czy waszym zdaniem winna może być zła konfiguracja hostingu? Ten post edytował adam882 14.01.2010, 16:47:58 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Skoro przy stu rekordach już ISP narzeka, to na bank nie masz w tabelach poprawnych indeksów.
Takie zapytania przy 100 000 rekordach w bazie potrafią się wykonywać w ciągu ułamków sekundy, a nie aż w ośmiu. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 289 Pomógł: 1 Dołączył: 2.11.2007 Ostrzeżenie: (0%)
|
hm.. mógłbyś mi podać chociaż link albo powiedzieć gdzie mogę znaleźć rozwiązanie problemu odnośnie tych indeksów? Nie do końca rozumiem o co chodzi z tymi poprawnymi indeksami - jeśli tyczy się to ID to ustawiałem go, jako klucz główny + auto zwiększanie. Wydaje mi się, że chodzi tutaj o CREATE UNIQUE INDEX , ale pierwszy raz z czymś takim się spotykam i jeszcze nie widziałem tego w aplikacjach internetowych.
Ten post edytował adam882 14.01.2010, 20:35:55 |
|
|
|
Post
#4
|
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Nie, indeks unikalny, to specyficzny rodzaj indeksu, którego raczej nie potrzebujesz.
Poszukaj kursów MySQL; w praktycznie każdym jest ten temat poruszony. |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 289 Pomógł: 1 Dołączył: 2.11.2007 Ostrzeżenie: (0%)
|
w "Biblii PHP5" na temat indeksów mysql piszą, że używane są w przypadku wielkiej ilości danych. Wspominane jest też, że używając go tylko przy 500 rekordach możemy nie zauważyć żadnej zmiany, a w otrzymanym raporcie rekordów w "kanaly" jest koło 100. Jak dla mnie to jakaś paranoja. Może jakiś spam-bot przyczepił się do mojej stronki i notorycznie zżera transfer, obciążając tym samym bazę? Bo jak to jest możliwe, że sama podstrona z danymi zapytaniami wczytuje się w ok. 0.02s , a w raporcie otrzymuję, że zapytania przekraczają 10 sekund?
Ten post edytował adam882 14.01.2010, 21:10:23 |
|
|
|
Post
#6
|
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Cytat w "Biblii PHP5" na temat indeksów mysql piszą, że używane są w przypadku wielkiej ilości danych. Wspominane jest też, że używając go tylko przy 500 rekordach możemy nie zauważyć żadnej zmiany, a w otrzymanym raporcie rekordów w "kanaly" jest koło 100. Ok, to tylko pozornie - przy większym obciążeniu już kilka może dać w kość. Bez indeksów, to tak, jakbyś szukał w niealfabetycznym słowniku wyjaśnienia jakiegoś terminu strona po stronie. Mając indeks, sprawdzasz w spisie treści, gdzie ono jest i czytasz tylko opis. |
|
|
|
![]() ![]() |
|
Aktualny czas: 26.12.2025 - 12:17 |