![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Proszę o pomoc, bo od długiego czasu nie mogę sobie poradzić z tym błędem bazy.
Baza zawiera 2 tabele: 1) cmentarze - opisy cmentarzy (1000 wierszy) 2) polegli - wykaz poległych pochowanych na w/w cmentarzach (11000 wierszy) Skrypt wyświetla na stronie zawartość tabeli 1), czyli krótki opis oraz generuje tabelę z poległymi - zawartość tabeli 2). Niby proste, przykład operacji na bazie ściągnęty z przykładów w internecie, niby powinno działać, a co jakiś czas baza blokuje się z powodu błędu #1226 - User has exceeded the 'busy_time' resource (current value: 600000000). Poniżej zamieszczam trochę odchudzony o pierdoły skrypt. Może ktoś znajdzie błąd zapętlania, zbyt długiego wykonywania zapytań, powodujących ów bład bazy. Czy operacje na bazie w sekcji HEAD mają wpływ i znaczenie?? <html><head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" /> <? $lng = $_GET['lng']; if ($lng=='') { $lng = 'pl'; } switch ($lng) { case 'en': require_once("english.php"); break; //TU KILKA CASE } $username = '*******';$password = '*******';$database = '*******'; $m = $_GET['m']; $order = $_GET['order']; $order1 = 'nazwisko'; switch ($order) { case 'n': $order1 = 'p.nazwisko'; break; //TU KILKA CASE DLA WYBORU PORZĄDKU SORTOWANIA } //POŁACZENIE Z BAZĄ DLA ODCZYTANIA DANYCH CMENTARZA $link = mysql_connect('sql.tgcp.nazwa.pl:3306', $username, $password) or die('Nie można'. mysql_error()); @mysql_select_db($database) or die("Nie udało.."); $result=mysql_query("SELECT * FROM cmentarz WHERE id = ".$m); $rek = mysql_fetch_array($result); mysql_close($link); mysql_free_result ($result); $id=$rek["id"]; $nazwa=$rek["nazwa"]; (...) //TU PODOBNE PRZYPISANIE KILKU DANYCH //TU KILKA LINIJEK PHP WSTAWIAJĄCYCH TEKST Z PLIKU ?> //TU SKRYPT MAPKI Z GOOGLE <script src="http://maps.google.com/maps</script> <script type="text/javascript"> </head> <body //USTAWIENIA onload="load()" onunload="GUnload()"> <table> <tr><td><b><? echo $l_lokalizacja2; ?>:</b></td><td><? echo $lokal; ?></td> <tr><td><b><? echo $l_kategoria; ?>:</b></td><td><? echo $kat; ?></td></tr> <tr><td><b><? echo $l_opis; ?>:</b></td><td><? echo $tekst; ?></td></tr> <tr><td><b><? echo $l_opracowanie; ?>:</b></td><td><? echo $opr; ?></td></tr> <tr><td><b><? echo $l_nazwisk1; ?>:</b></td><td> <? //TU ODCZYT NAZWISK POLEGŁYCH $link = mysql_connect('sql.tgcp.nazwa.pl:3306', $username, $password) or die('Nie można..' . mysql_error()); @mysql_select_db($database) or die("Nie udało..."); $result=mysql_query("SELECT * FROM polegli p, cmentarz c WHERE miejsce_p='$m' AND c.id=p.miejsce_p ORDER BY ".$order1); //POBRANIE LICZBY WIERSZY = LICZBY POLEGŁYCH $num=mysql_numrows($result); if ($num==0) { echo $l_nazwisk2; echo "</td></tr>"; echo "</table><br>"; } else { echo $num ?> //DOMKNIĘCIE POPRZEDNIEJ TABELI </td></tr> </table><br> //TABELA WŁAŚCIWA <table> <tr> <th><? echo $l_nazwisko; ?></th> <th><? echo $l_imie; ?></th> <th><? echo $l_stopien; ?></th> <th><? echo $l_jednostka;</th> <th><? echo $l_m_smierci; ?></th> <th><? echo $l_d_urodzenia; ?></th> <th><? echo $l_m_urodzenia; ?></th> <th><? echo $l_uwagi; ?></th> </tr> //POCZĄTEK PĘTLI WYPEŁNIAJĄCEJ TABELĘ <? while ($rek = mysql_fetch_array($result)) { $nazwisko=$rek["nazwisko"];if ($nazwisko==null) {$nazwisko='-';} $imie=$rek["imie"];if ($imie==null) {$imie='-';} $stopien=$rek["stopien"];if ($stopien==null) {$stopien='-';} $jednostka=$rek["jednostka"];if ($jednostka==null) {$jednostka='-';} $data_s=$rek["data_s"];if ($data_s==null) {$data_s='-';} $miejsce_s=$rek["miejsce_s"];if ($miejsce_s==null) {$miejsce_s='-';} $miejsce_u=$rek["miejsce_u"];if ($miejsce_u==null) {$miejsce_u='-';} $data_u=$rek["data_u"];if ($data_u==null) {$data_u='-';} $uwagi=$rek["uwagi"];if ($uwagi==null) {$uwagi='-';} ?> <tr> <td><? echo $nazwisko; ?></td> <td><? echo $imie; ?></td> <td><? echo $stopien; ?></td> <td><? echo $jednostka; ?></td> <td><? echo $data_s; ?></td> <td><? echo $miejsce_s; ?></td> <td><? echo $data_u; ?></td> <td><? echo $miejsce_u; ?></font></td> <td><? echo $uwagi; ?></td> </tr> <? } echo "</table></center>"; } mysql_free_result($result); mysql_close($link); ?> //TU PARĘ LINIJEK PHP WSTAWIAJĄCYCH ZDJĘCIA </body> </html> Skrypt wyświetla na stronie zawartość tabeli 1), czyli krótki opis oraz generuje tabelę z poległymi - zawartość tabeli 2). Niby proste, przykład operacji na bazie ściągnęty z przykładów w internecie, niby powinno działać, a co jakiś czas baza blokuje się z powodu błędu #1226 - User has exceeded the 'busy_time' resource (current value: 600000000). Poniżej zamieszczam trochę odchudzony o pierdoły skrypt. Może ktoś znajdzie błąd zapętlania, zbyt długiego wykonywania zapytań, powodujących ów bład bazy. Czy operacje na bazie w sekcji HEAD mają wpływ i znaczenie?? Czy to możliwe, żeby nadanie dwóm tabelom w bazie indeksów pomogło na tyle przyspieszyć operacje na bazie, żeby błąd #1226 przestał się pojawiać?? Nie sprawdzałem bazy przez dłuższy czas, ale chyba to pomogło.... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 4.04.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Niech zgadnę... hosting w Nazwa.pl (IMG:style_emoticons/default/winksmiley.jpg)
U mnie optymalizacja zapytań do MySQL nie pomogła, byłem zmuszony przenieść serwis na inny serwer. Przed zakupem warto uważnie sprawdzać limity i ograniczenia konta serwerowego: http://nazwa.pl/netart-o-firmie-parametry-...ieczenstwa.html Ja nie zauważyłem bo były mocno zabunkrowane na podstronach i cierpiałem, strona kilka razy dziennie na okres godziny padała całkiem - ogólnie uważam, że nazwa.pl / NetArt ma słaby hosting - wiele osób na niego narzeka. W ostateczności zawsze można się przenieść na inny serwer i po kłopocie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 10:02 |