![]() |
![]() |
![]()
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:
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. |
|
|
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 13:22 |