Visualizzazione risultati 1 fino 3 di 3

Discussione: Non supero la soglia queries/ora

  1. #1
    Guest

    Predefinito Non supero la soglia queries/ora

    Ciao a tutti, ho provato a superare il mio limite di queries/ora che attualmente è di 300q/ora ma non mi mostra il messaggio di errore di Altervista.

    Per provare questa cosa ho scritto questo semplice codice:

    Codice PHP:
    <table>
    <?php
    //connessione al db
    $i=0;
    while(
    true)
    {
    $tab = mysql_query("SELECT * FROM utenti;");

    if (@
    $tab and mysql_error() == '')
    {
    $i++;
    print(
    "<tr>");
    print(
    "<td>".$i."</td>");
    while(
    $riga = mysql_fetch_array($tab))
    {
    print(
    "<td>".$riga['username']."</td>");
    }
    print(
    "<td>".mysql_error()."-".mysql_errno()."</td>");
    print(
    "</tr>");
    }
    if (
    $i > 300) break;
    }
    //chiusura connessione db
    ?>
    </table>
    Mi visualizza il contenuto della tabella utenti per 301 volte quindi dovrebbe aver eseguito 301 volte la query con successo!

    Non riesco a capire il perchè non mi mostra l'errore, forse c'è un errore nel codice che non riesco a vedere!???

    Grazie a tutti! Ciao
    Ultima modifica di debug : 25-03-2008 alle ore 13.38.08

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    e ti lamenti?

    ci possono essere più motivi per questo comportamento:
    • da un lato la query è sempre la stessa, quindi può essere che mysql tenga una cache delle ultime query effettuate invece di eseguirla ogni volta - un modo come un altro per difendersi dal troppo carico;
    • d'altra parte, se leggi la descrizione delle classi del database vedrai che si parla di "potenza minima garantita", non di limite massimo. In alcune condizioni di carico, il sistema può essere gentile e lasciarti continuare ancora per un po', invece di bloccarti appena superi il numero di query consentite


    e poi c'è gente che si lamenta dei servizi

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    e ti lamenti?

    ci possono essere più motivi per questo comportamento:
    • da un lato la query è sempre la stessa, quindi può essere che mysql tenga una cache delle ultime query effettuate invece di eseguirla ogni volta - un modo come un altro per difendersi dal troppo carico;
    • d'altra parte, se leggi la descrizione delle classi del database vedrai che si parla di "potenza minima garantita", non di limite massimo. In alcune condizioni di carico, il sistema può essere gentile e lasciarti continuare ancora per un po', invece di bloccarti appena superi il numero di query consentite


    e poi c'è gente che si lamenta dei servizi
    Avevi ragione tu...mysql utilizza una cache per le queries e quindi se esegui più volte la stessa query quando è ancora nella ram del server la conta come 1 query sola.

    Ho provato a modificare il codice di prima in modo che ogni query eseguita fosse diversa dalle altre e si è fermato a meno di 300 visualizzandomi l'errore standard.

    Molto probabilmente la cache del mysql di Altervista supera le 300 queries distinte (almeno questo è quello che è venuto fuori facendo delle prove) quindi c'è un grande fatto positivo per chi ha un database di livello 1 e cioè che gli utenti che navigano sul sito, non solo devono eseguire 300 queries in 1 ora prima che il database si blocchi, ma queste devono anche essere tutte diverse (almeno per 1 carattere).

    Ho anche letto che non tutte le queries vengono messe nella cache (dipende da quanto sono grandi).

    Ciao e grazie

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •