konto usunięte

Temat: [MySQL] Ograniczenia dla użytkowników

Witajcie,

Problem:
------

Jest sobie serwer MySQL na którym mam N baz danych oraz N użytkowników (każdy baza danych = oddzielny projekt = oddzielne konto/użytkownik). Programiści korzystają z różnych ORM-ów i czasem w pośpiechu zrobią jakiegoś babola w kodzie typu pobierz 10 milionów rekordów do zmiennej tablicowej, a następnie zwróć jej rozmiar zamiast po prostu napisać:

SELECT count(*) FROM table_name

Takie zapytanie, gdy jest troszkę bardziej skomplikowane niż zwykły select (np. podzapytaia, złączenia itp.) potrafi się czasem długo wykonywać przez co cały MySQL się dławi.

Pytanie:
-------

Czy w MySQL możliwe jest założenie restrykcji/ograniczeń, przy pomocy będę mógł zrobić np. "ubij wszystkie zapytania, które wykonują się dłużej niż 120 sekund"

Z góry dziękuję za cenne linki/słowa kluczowe.
Janusz Skudrzyk

Janusz Skudrzyk Członek zarządu,
weblabs.pl

Temat: [MySQL] Ograniczenia dla użytkowników

Goście z Directadmina piszą:

for pid in `mysqladmin -uroot processlist | grep -i select | awk -F"|" '$7>=30{print $2}'`; do { mysqladmin kill $pid; echo "Pid $pid Killed"; } ; done

Wstawiasz to do crona i niech się odpala co jakiś czas.
Sam mysql nie ma chyba żadnego ograniczenia (chociaż może w łatkach od Percony coś by się znalazło). No i zawsze można odpalić slow-query-log i postraszyć najbardziej obciążających.

http://code.google.com/p/google-mysql-tools/wiki/UserT...Janusz Skudrzyk edytował(a) ten post dnia 29.05.10 o godzinie 00:09

konto usunięte

Temat: [MySQL] Ograniczenia dla użytkowników

Eleganckie to nie jest, ale obawiam się, że chyba najlepsze ze znanych rozwiązań. W każdym bądź razie dziękuję za skrypt :)



Wyślij zaproszenie do