Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] optymalizacja zapytań
wicy
post
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 2.02.2008

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


Witam,
Jestem słabo obeznany a wziąłem sobie na kark obsługę pewnego projektu.
Projekt prosty - www + kilka skryptów php + baza sql.
Baza jest nie duża: 2 tabele - jedna 10.000 wierszy, druga 900 wierszy.
Problem zaczął się z przekraczaniem limitów zapytań do bazy, choć zupełnie nie wiem z czego się to bierze, gdyż ogół wizyt na stronie dzinnie nie przekracza 20-30. Serwer jednak blokuje bazę wypluwając komunikat:
1226: User 'xxx' has exceeded the 'max_questions' resource (current value: 600000000)
i baza pada na jakiś czas.
Ponieważ limit zapytań ustawiony jest na konkretną bazę uworzyłem kopię bazy z myślą, żeby sprawdzać przed wykonaniem zapytania wartość
'max_questions' i przy przekroczeniu limitu nie narażać się na zwiechę bazy, ale przekierować zapytania do kopii bazy.
Jak sprawdzić
wartość 'max_questions' przed wykonaniem zapytania do bazy??

$link = mysql_connect('xxxl:3306', $username, $password) or die('Nie można się połączyć: ' . mysql_error());
@mysql_select_db($database) or die("Nie udało się wybrać bazy danych");

$result=mysql_query("SELECT * FROM cmentarz WHERE id = ".$m);



Jedyne rozwiązanie jakie na szybko przyszło mi do głowy, dla zmniejszenia ilości zapytań generowanych do bazy sql, to utworzenie kilku kopii tej samej bazy. Kilka skryptów odwołujących się do bazy odwołuje się teraz do róznych baz - każdy do swojej. Teoretycznie powinno to dla 4 baz zmniejszyć ilość zapytań o 75% dla bazy, ale nie mam pojęcia który ze skryptów generuje największą ilość zapytań.
Da się to jakoś sprawdzić? Czy tylko za pomocą admina powidera??

Ten post edytował wicy 2.02.2008, 14:26:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nevt
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


else
{
echo $num
?>


jaka liczba wyświetla się w tej linijce... przy złej kostrukcji zapytania lub nieprawidłowych danych dla klauzuli WHERE moze wywalać nawet całą tabelę - nie widzę zabezpieczenia w postaci stronicowania wyników, jakiś LIMIT w zapytaniu na przykład...
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: 15.10.2025 - 18:45