Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Obciążenie mysql
adam882
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
erix
post
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.

  1. SELECT * FROM kanaly WHERE id=N
  2. Zapytanie wykonane 2 razy na bazie d4548dn_strona, wartosci średnie: query time: 8.00s

Takie zapytania przy 100 000 rekordach w bazie potrafią się wykonywać w ciągu ułamków sekundy, a nie aż w ośmiu.
Go to the top of the page
+Quote Post
adam882
post
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
Go to the top of the page
+Quote Post
erix
post
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.
Go to the top of the page
+Quote Post
adam882
post
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
Go to the top of the page
+Quote Post
erix
post
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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 12:17