![]() |
![]() |
![]()
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: 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? (IMG:style_emoticons/default/smile.gif) Bo tam takie cyrki się dzieją. Sam miałem bardzo podobną sytuację, tylko że rekordów było 21 (IMG:style_emoticons/default/wink.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 15:48 |