Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Zawieszanie sie bazy mysql, a optymalizacja skryptow
yalus
post
Post #1





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 8.07.2005
Skąd: EU

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


witam

struktura mojej stronki sklada sie z dwoch plikow:

1 - index.php
2 - global.php


plik index.php:

  1. <?php
  2.  
  3. include('common/global.php');
  4.  
  5. $link = mysql_connect("serwer", "user", "psw")
  6. or die ("Could not connect to MySQL (db_connect)");
  7.  
  8. mysql_select_db ("database")
  9.  or die ("Could not select database (db_connect)");
  10.  
  11.  
  12. <body>";
  13.  
  14. if (!isset($_GET['options']))
  15. {
  16.  echo login('','');
  17. }
  18. else
  19. {
  20.  
  21. switch ($_GET['options']) {
  22.  
  23. case 'sprawdzone':
  24.  
  25.  echo sprawdzone($_GET['mobile_number'], $_GET['init'], $_GET['status'], $_GET['appNumber']);
  26. break;
  27. }
  28.  
  29. };
  30.  
  31. echo "</body></html>";
  32.  
  33. mysql_close($link);
  34.  
  35. ?>



plik global.php:
w pliku tym znajduja sie definicje stalych i wszystkie funkcje
m.inn znajduje sie taka funkcja:

  1. <?php
  2. function sprawdzone($mobileNumber,$init,$status,$appNumber)
  3. {
  4.  
  5. $zapytanie = "insert into tblcheckedtoday SET
  6. mobile_number='$mobileNumber',
  7. init='$init',
  8. status='$status',
  9. date='".date("Y-m-d H:i:s")."'";
  10.  $result = mysql_query($zapytanie) or die ("Could not select database (sprawdzone1)");
  11.  
  12.  
  13. $zapytanie= "UPDATE tblsettings, tblmain SET
  14. tblmain.status='$status',
  15. tblsettings.agreement_number='$appNumber',
  16. tblsettings.date_of_check='".date("Y-m-d")."'
  17. WHERE tblsettings.mobile_number=tblmain.mobile_number and tblsettings.mobile_num
    ber='$mobileNumber'"
    ;
  18.  $result = mysql_query($zapytanie) or die ("Could not select database (sprawdzone2)");
  19.  
  20. }
  21. ?>



wydaje mi sie ze wszystko jest jasne, tzn w zaleznosci jaki parametr jest przekazany do pliku index.php za pomoca zmiennej options to taka jest wykonywan funkcja z pliku global.php

najczesciej przekazywany jest parametr 'sprawdzone' i wykonywane sa dwa zapytania do bazy zawarte w funkcji sprawdzone() a w ciagu godziny funkcja ta wywolana jest kilka set razy - i tu jest problem
serwer mysql siada pojawia sie komunikat:
user has exceeded the 'busy_time' resource (current value: 600000000)

czy jest jakas mozliwosc aby temu zaradzic?


--------------------
człowiek nie sznurek wszystko wytrzyma
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




nazwa.pl ?

Daj przed każdym zapytaniem logowanie czasu wykonania (poprzez microtime(1)) i zobaczysz tym samym, ile zajmuje pojedynczy request.

Pozdrawiam


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
yalus
post
Post #3





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 8.07.2005
Skąd: EU

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


tak nazwa.pl, a skad ten domysl czy na innych serwerach jest lepiej?



o co do logowania to masz na mysli cos takiego:

  1. <?php
  2. function sprawdzone($mobileNumber,$init,$status,$appNumber)
  3. {
  4.  
  5. $time_start = microtime();
  6.  
  7.  
  8. $zapytanie = "insert into tblcheckedtoday SET
  9. mobile_number='$mobileNumber',
  10. init='$init',
  11. status='$status',
  12. date='".date("Y-m-d H:i:s")."'";
  13.  $result = mysql_query($zapytanie) or die ("Could not select database (sprawdzone1)");
  14.  
  15.  
  16. $zapytanie= "UPDATE tblsettings, tblmain SET
  17. tblmain.status='$status',
  18. tblsettings.agreement_number='$appNumber',
  19. tblsettings.date_of_check='".date("Y-m-d")."'
  20. WHERE tblsettings.mobile_number=tblmain.mobile_number and tblsettings.mobile_num
    ber='$mobileNumber'"
    ;
  21.  $result = mysql_query($zapytanie) or die ("Could not select database (sprawdzone2)");
  22.  
  23. }
  24.  
  25.  
  26. $time_end = microtime();
  27.  
  28. $time = $time_end - $time_start;
  29. ?>


aha jeszcze jedno zauwazylem ze problem ten pojawia sie znacznie czesciej jak zamieszcze na koncu pliku index.php taka linike:
  1. <?php
  2. mysql_close($link);
  3. ?>


Ten post edytował yalus 27.06.2008, 13:19:22


--------------------
człowiek nie sznurek wszystko wytrzyma
Go to the top of the page
+Quote Post
nitro18
post
Post #4





Grupa: Zarejestrowani
Postów: 311
Pomógł: 7
Dołączył: 2.08.2006
Skąd: Bystrzyca Kłodzka/Nysa

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


daj:
Kod
mysql_close();


a zamknie aktywne połączenie z bazą mysql
Go to the top of the page
+Quote Post
yalus
post
Post #5





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 8.07.2005
Skąd: EU

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


juz doszedlem do tego co sie dzieje
na serwerach nazwa.pl mam tylko 600sec na godzine na wykonywania zapytań liczone na bazę


--------------------
człowiek nie sznurek wszystko wytrzyma
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 Aktualny czas: 22.08.2025 - 00:33