Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Mysql slow queries - problem
konrados
post 7.02.2011, 10:42:14
Post #1





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


Cześć,

Spotkała mnie dziwna rzecz: ostrzeżenie o mysql slow queries, dotyczący tabelki, w której tego problemu bym się raczej nie spodziewał.

Serwis ma parę tabel, w tym także parę takich z kilkunastoma tysiącami rekordów. W tych tabelach używałem między innymi typu varchar, przy czym dawałem index na te pola. Z tymi tabelami nie było problemów, problem był z inną, "variables", struktura wyglądała tak:

id, name (varchar), str (varchar), number (int)

Tabelka służyła do przechowywania różnych globalnych zmiennych, był np. rekord "global_hits" do przetrzymywania ogólnej liczby hits na całym serwisie, a problematyczna linijka wyglądała tak:

  1. //no $cur_hits coś tam zawiera (liczbę)
  2. mysql_query("UPDATE `variables` SET `number`='$cur_hits' WHERE name='global_hits'",$g_conn) or die(mysql_error());


Jak widać robię " WHERE name='global_hits' " przy czym zapomniałem dać indeks na pole "name". I to by być może tłumaczyło problem ze slow queries, gdyby nie to, że w tej tabeli łącznie były... 2 (słownie dwa) rekordy, w tym właśnie jeden gdzie name = 'global_hits'.

No i tu pytanie: czy właśnie ów brak indeksu na tym polu "name" mógł spowodować "slow queries", jeśli w tabelce były łącznie dwa rekordy?

Nie mogę tego sprawdzić empirycznie, bo serwis został chwilowo wyłączony przez firmę hostingową, a pytam, bo być może ten problem jeszcze gdzieś tam w kodzie występuje.
Go to the top of the page
+Quote Post
Hekko
post 7.02.2011, 10:56:35
Post #2





Grupa: Zarejestrowani
Postów: 255
Pomógł: 23
Dołączył: 1.12.2003

Ostrzeżenie: (10%)
X----


Masz log z mysql slow queries?
Może to również świadczyć o chwilowej zadyszce serwera, wtedy nawet proste zapytania tam trafiają.


--------------------
Tani hosting - Hekko.pl | PHP 5.2/5.3/5.4/5.5/5.6 | MySQL 5.5 |
Hosting już od 49 zł rocznie! Domena pl do każdego pakietu!
Go to the top of the page
+Quote Post
thek
post 7.02.2011, 10:58:03
Post #3





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Taka mała tabela nie powinna nawet zaszumieć, a co dopiero wisieć ponad sekundę (taki jest zazwyczaj limit dolny czasu od jakiego łapiesz się na slow queries). Ewidentnie wina firmy hostingowej i problem z bazą na serwerze. Niech zgadnę... home lub az? smile.gif Bo tam takie cyrki się dzieją. Sam miałem bardzo podobną sytuację, tylko że rekordów było 21 wink.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
konrados
post 7.02.2011, 12:04:24
Post #4





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


@Hekko No zadyszka serwera chyba by dała błędy/problemy dot. tych większych tabel? Szczególnie, że wysłali mi wiele ostrzeżeń na maila, każdy dotyczący tej samej tabeli. No ale, że byłem na urlopie to jakoś tak nie odebrałem.
Logów niestety nie mam.


@thek
Nie, żadna z polskich firm. Strona siedziała na hamerykańskim darmowym hostingu www.000webhost.com , dopiero miałem zamiar w końcu wymyślić domenę dla niej i przenieść na mój płatny hosting. Teraz z backupów starych na 2 miesiące będę musiał kopiować sad.gif

Ale skoro takie cyrki się dzieją na paru serwerach to może to jakiś problem z mysql? Może po prostu warto dawać indeks na wszystkie możliwe pola nawet jak tabela ma mieć < kilkadziesiąt rekordów?

Ten post edytował konrados 7.02.2011, 12:07:11
Go to the top of the page
+Quote Post
Hekko
post 7.02.2011, 12:46:32
Post #5





Grupa: Zarejestrowani
Postów: 255
Pomógł: 23
Dołączył: 1.12.2003

Ostrzeżenie: (10%)
X----


Różnie to bywa, może wycięli pierwsze z brzegu. Ewidentnie to może być problem z samym serwerem, szczególnie, że to darmówka. Znaleźli pseudo-powód aby Cię wywalić.

Ten post edytował Hekko 7.02.2011, 12:47:14


--------------------
Tani hosting - Hekko.pl | PHP 5.2/5.3/5.4/5.5/5.6 | MySQL 5.5 |
Hosting już od 49 zł rocznie! Domena pl do każdego pakietu!
Go to the top of the page
+Quote Post
konrados
post 7.02.2011, 13:27:55
Post #6





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


Ok, dzięki wam.
Chyba jednak poprawię to zanim wrzucę na inny serwer smile.gif
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: 17.06.2025 - 12:32