Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Mysql slow queries - problem
konrados
post
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
 
Start new topic
Odpowiedzi
konrados
post
Post #2





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ć (IMG:style_emoticons/default/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

Posty w temacie


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: 8.10.2025 - 13:22