Domanda

Esiste un modo per dare la priorità o acceleratore una query a tutti in MySQL?

Sono un DBA su un server che vede un sacco di query non ottimizzate entrano in server e hanno appena distruggere la CPU. Sto guardando strozzamento determinati utenti che hanno colpito sul database in cattive moda.

Chiarimento:

Mi rendo conto che MySQL dispone di strutture costruite per il numero limite di query, connessioni, ecc Ma quelli non sono realmente il problema, è che una volta in una luna blu un utente invia una query non ottimizzata, e avrei bisogno a tempo fuori o qualcosa di simile.

È stato utile?

Soluzione

http://dev.mysql.com/doc /refman/4.1/en/user-resources.html

A partire da MySQL 4.0.2, è possibile limitare l'accesso alle seguenti risorse del server per i singoli account:

Il numero di query che un account può emettere per ora

Il numero di aggiornamenti che un account può emettere per ora

Il numero di volte che un cliente può connettersi al server per ora

Altre Informazioni -

MySQL non ha un valore di timeout di query, o di qualsiasi altra incorporato in modo da strozzare una singola query. Tuttavia, è piuttosto banale scrivere uno script che ucciderà le query a lungo in esecuzione. Si potrebbe anche catturare l'utente e query in modo che si può battere l'utente / programmatore di offendere più tardi.

Qui è un esempio di uno che utilizza PERL.

Altri suggerimenti

So che phpMyAdmin dispone di un'area per Max # di query per ora, Max # degli aggiornamenti per ora, Max # di connessioni all'ora, e Max # di connessioni utente per utente. Probabilmente ci sono altri modi per impostare questi valori diversi da phpMyAdmin

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top